@Override
    public Path mkdir(final Path folder, final TransferStatus status) throws BackgroundException {
        if(containerService.isContainer(folder)) {
            final S3BucketCreateService service = new S3BucketCreateService(session);
            service.create(folder, StringUtils.isBlank(status.getRegion()) ?
                    new S3LocationFeature(session, session.getClient().getRegionEndpointCache()).getDefault().getIdentifier() : status.getRegion());
            return folder;
        }
        else {
            final EnumSet<Path.Type> type = EnumSet.copyOf(folder.getType());
            type.add(Path.Type.placeholder);
            return new S3TouchFeature(session, acl).withWriter(writer).touch(folder
                    .withType(type), status
                    // Add placeholder object
                    .withMime(MIMETYPE)
                    .withChecksum(writer.checksum(folder, status).compute(new NullInputStream(0L), status)));
        }
    }
@Test
    @Ignore
    public void testCreateBucket() throws Exception {
        final S3AccessControlListFeature acl = new S3AccessControlListFeature(session);
        final S3DirectoryFeature feature = new S3DirectoryFeature(session, new S3WriteFeature(session, acl), acl);
        for(Location.Name region : session.getHost().getProtocol().getRegions()) {
            switch(region.getIdentifier()) {
                case "me-south-1":
                case "ap-east-1":
                    // Not enabled for account
                    break;
                default:
                    final Path test = new Path(new DefaultHomeFinderService(session).find(), new AsciiRandomStringService(30).random(), EnumSet.of(Path.Type.directory, Path.Type.volume));
                    assertTrue(feature.isSupported(test.getParent(), test.getName()));
                    test.attributes().setRegion(region.getIdentifier());
                    feature.mkdir(test, new TransferStatus().withRegion(region.getIdentifier()));
                    assertTrue(new S3FindFeature(session, acl).find(test));
                    assertEquals(region.getIdentifier(), new S3LocationFeature(session, session.getClient().getRegionEndpointCache()).getLocation(test).getIdentifier());
                    new S3DefaultDeleteFeature(session).delete(Collections.singletonList(test), new DisabledLoginCallback(), new Delete.DisabledCallback());
            }
        }
    }