S3StorageProvider extends StorageProviderBase { public void createSpace(String spaceId) { log.debug("createSpace(" + spaceId + ")"); if (spaceExists(spaceId)) { throw new SpaceAlreadyExistsException(spaceId); } Bucket bucket = createBucket(spaceId); Date created = bucket.getCreationDate(); if (created == null) { created = new Date(); } Map<String, AclType> spaceACLs = new HashMap<>(); Map<String, String> spaceProperties = new HashMap<>(); spaceProperties.put(PROPERTIES_SPACE_CREATED, formattedDate(created)); try { setNewSpaceProperties(spaceId, spaceProperties, spaceACLs); } catch (StorageException e) { removeSpace(spaceId); String err = "Unable to create space due to: " + e.getMessage(); throw new StorageException(err, e, RETRY); } } S3StorageProvider(String accessKey, String secretKey);  S3StorageProvider(String accessKey,
                             String secretKey,
                             Map<String, String> options);  S3StorageProvider(AmazonS3 s3Client,
                             String accessKey,
                             Map<String, String> options); @Override StorageProviderType getStorageProviderType(); Iterator<String> getSpaces(); Iterator<String> getSpaceContents(String spaceId,
                                             String prefix); List<String> getSpaceContentsChunked(String spaceId,
                                                String prefix,
                                                long maxResults,
                                                String marker); void createSpace(String spaceId); String createHiddenSpace(String spaceId, int expirationInDays); void setSpaceLifecycle(String bucketName,
                                  BucketLifecycleConfiguration config); void removeSpace(String spaceId); String addHiddenContent(String spaceId,
                                   String contentId,
                                   String contentMimeType,
                                   InputStream content); String addContent(String spaceId,
                             String contentId,
                             String contentMimeType,
                             Map<String, String> userProperties,
                             long contentSize,
                             String contentChecksum,
                             InputStream content); @Override String copyContent(String sourceSpaceId,
                              String sourceContentId,
                              String destSpaceId,
                              String destContentId); RetrievedContent getContent(String spaceId, String contentId); RetrievedContent getContent(String spaceId, String contentId, String range); void deleteContent(String spaceId, String contentId); void setContentProperties(String spaceId,
                                     String contentId,
                                     Map<String, String> contentProperties); Map<String, String> getContentProperties(String spaceId,
                                                    String contentId); @Override Map<String, String> getSpaceProperties(String spaceId); String getBucketName(String spaceId); static final String HIDDEN_SPACE_PREFIX; }
@Test public void testCreateSpace() { testCreateSpace("spaceid"); }