Package org.jclouds.s3.blobstore
Class S3BlobStore
java.lang.Object
org.jclouds.blobstore.internal.BaseBlobStore
org.jclouds.s3.blobstore.S3BlobStore
- All Implemented Interfaces:
BlobStore
- Direct Known Subclasses:
AWSS3BlobStore
-
Field Summary
Fields inherited from class org.jclouds.blobstore.internal.BaseBlobStore
blobUtils, context, defaultLocation, locations, slicer
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
S3BlobStore
(BlobStoreContext context, BlobUtils blobUtils, com.google.common.base.Supplier<Location> defaultLocation, com.google.common.base.Supplier<Set<? extends Location>> locations, PayloadSlicer slicer, S3Client sync, com.google.common.base.Function<Set<BucketMetadata>, PageSet<? extends StorageMetadata>> convertBucketsToStorageMetadata, ContainerToBucketListOptions container2BucketListOptions, BucketToResourceList bucket2ResourceList, ObjectToBlob object2Blob, BlobToHttpGetOptions blob2ObjectGetOptions, BlobToObject blob2Object, BlobToObjectMetadata blob2ObjectMetadata, ObjectToBlobMetadata object2BlobMd, jakarta.inject.Provider<FetchBlobMetadata> fetchBlobMetadataProvider) -
Method Summary
Modifier and TypeMethodDescriptionvoid
boolean
blobExists
(String container, String key) This implementation invokesS3Client.objectExists(java.lang.String, java.lang.String)
blobMetadata
(String container, String key) This implementation invokesS3Client.headObject(java.lang.String, java.lang.String)
completeMultipartUpload
(MultipartUpload mpu, List<MultipartPart> parts) boolean
containerExists
(String container) This implementation invokesS3Client.bucketExists(java.lang.String)
copyBlob
(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options) Copy blob from one container to another.boolean
createContainerInLocation
(Location location, String container) This implementation invokesS3Client.putBucketInRegion(java.lang.String, java.lang.String, org.jclouds.s3.options.PutBucketOptions...)
boolean
createContainerInLocation
(Location location, String container, CreateContainerOptions options) protected boolean
deleteAndVerifyContainerGone
(String container) This implementation invokesS3Utils.deleteAndVerifyContainerGone(org.jclouds.s3.S3Client, java.lang.String)
protected void
This implementation invokesBaseBlobStore.clearContainer(java.lang.String)
thenS3Client.deleteBucketIfEmpty(java.lang.String)
until it is true.getBlob
(String container, String key, GetOptions optionsList) This implementation invokesS3Client.getObject(java.lang.String, java.lang.String, org.jclouds.http.options.GetOptions...)
getBlobAccess
(String container, String name) getContainerAccess
(String container) long
int
long
initiateMultipartUpload
(String container, BlobMetadata blobMetadata, PutOptions overrides) PageSet
<? extends StorageMetadata> list()
This implementation invokesS3Client.listOwnedBuckets()
PageSet
<? extends StorageMetadata> list
(String container, ListContainerOptions options) This implementation invokesS3Client.listBucket(java.lang.String, org.jclouds.s3.options.ListBucketOptions...)
listMultipartUploads
(String container) This implementation invokesS3Client.putObject(java.lang.String, org.jclouds.s3.domain.S3Object, org.jclouds.s3.options.PutObjectOptions...)
putBlob
(String container, Blob blob, PutOptions overrides) This implementation invokesS3Client.putObject(java.lang.String, org.jclouds.s3.domain.S3Object, org.jclouds.s3.options.PutObjectOptions...)
void
removeBlob
(String container, String key) This implementation invokesS3Client.deleteObject(java.lang.String, java.lang.String)
void
removeBlobs
(String container, Iterable<String> keys) Deletes multipleBlob
s representing the data at locationcontainer/name
void
setBlobAccess
(String container, String name, BlobAccess access) void
setContainerAccess
(String container, ContainerAccess access) uploadMultipartPart
(MultipartUpload mpu, int partNumber, Payload payload) Methods inherited from class org.jclouds.blobstore.internal.BaseBlobStore
blobBuilder, clearContainer, clearContainer, countBlobs, countBlobs, createDirectory, deleteContainer, deleteContainerIfEmpty, deleteDirectory, directoryExists, downloadBlob, downloadBlob, getBlob, getContext, list, listAssignableLocations, putMultipartBlob, putMultipartBlob, streamBlob, streamBlob
-
Constructor Details
-
S3BlobStore
@Inject protected S3BlobStore(BlobStoreContext context, BlobUtils blobUtils, com.google.common.base.Supplier<Location> defaultLocation, com.google.common.base.Supplier<Set<? extends Location>> locations, PayloadSlicer slicer, S3Client sync, com.google.common.base.Function<Set<BucketMetadata>, PageSet<? extends StorageMetadata>> convertBucketsToStorageMetadata, ContainerToBucketListOptions container2BucketListOptions, BucketToResourceList bucket2ResourceList, ObjectToBlob object2Blob, BlobToHttpGetOptions blob2ObjectGetOptions, BlobToObject blob2Object, BlobToObjectMetadata blob2ObjectMetadata, ObjectToBlobMetadata object2BlobMd, jakarta.inject.Provider<FetchBlobMetadata> fetchBlobMetadataProvider)
-
-
Method Details
-
list
This implementation invokesS3Client.listOwnedBuckets()
-
containerExists
This implementation invokesS3Client.bucketExists(java.lang.String)
- Parameters:
container
- bucket name
-
createContainerInLocation
This implementation invokesS3Client.putBucketInRegion(java.lang.String, java.lang.String, org.jclouds.s3.options.PutBucketOptions...)
- Parameters:
location
- corresponds to a Regioncontainer
- bucket name- Returns:
- true if the container was created, false if it already existed.
-
getContainerAccess
-
setContainerAccess
-
list
This implementation invokesS3Client.listBucket(java.lang.String, org.jclouds.s3.options.ListBucketOptions...)
- Parameters:
container
- bucket nameoptions
- size, recursion, and context of the list- Returns:
- a list that may be incomplete, depending on whether PageSet#getNextMarker is set
-
deletePathAndEnsureGone
This implementation invokesBaseBlobStore.clearContainer(java.lang.String)
thenS3Client.deleteBucketIfEmpty(java.lang.String)
until it is true.- Overrides:
deletePathAndEnsureGone
in classBaseBlobStore
-
blobExists
This implementation invokesS3Client.objectExists(java.lang.String, java.lang.String)
- Parameters:
container
- bucket namekey
- object key
-
blobMetadata
This implementation invokesS3Client.headObject(java.lang.String, java.lang.String)
- Parameters:
container
- bucket namekey
- object key- Returns:
- null if name isn't present or the blob you intended to receive.
-
getBlob
This implementation invokesS3Client.getObject(java.lang.String, java.lang.String, org.jclouds.http.options.GetOptions...)
- Parameters:
container
- bucket namekey
- object keyoptionsList
- byte range or condition options- Returns:
- the blob you intended to receive or null, if it doesn't exist.
-
putBlob
This implementation invokesS3Client.putObject(java.lang.String, org.jclouds.s3.domain.S3Object, org.jclouds.s3.options.PutObjectOptions...)
- Parameters:
container
- bucket nameblob
- object- Returns:
- etag of the blob you uploaded, possibly null where etags are unsupported
-
putBlob
This implementation invokesS3Client.putObject(java.lang.String, org.jclouds.s3.domain.S3Object, org.jclouds.s3.options.PutObjectOptions...)
- Parameters:
container
- bucket nameblob
- objectoverrides
- byte range options- Returns:
- etag of the blob you uploaded, possibly null where etags are unsupported
-
copyBlob
public String copyBlob(String fromContainer, String fromName, String toContainer, String toName, CopyOptions options) Description copied from interface:BlobStore
Copy blob from one container to another. Some providers implement this more efficiently than corresponding getBlob and putBlob operations. Note: options are currently ignored- Specified by:
copyBlob
in interfaceBlobStore
- Overrides:
copyBlob
in classBaseBlobStore
- Returns:
- ETag of new blob
-
removeBlob
This implementation invokesS3Client.deleteObject(java.lang.String, java.lang.String)
- Parameters:
container
- bucket namekey
- object key
-
removeBlobs
Description copied from interface:BlobStore
Deletes multipleBlob
s representing the data at locationcontainer/name
- Specified by:
removeBlobs
in interfaceBlobStore
- Overrides:
removeBlobs
in classBaseBlobStore
- Parameters:
container
- container where this exists.keys
- fully qualified names relative to the container.
-
getBlobAccess
-
setBlobAccess
-
initiateMultipartUpload
public MultipartUpload initiateMultipartUpload(String container, BlobMetadata blobMetadata, PutOptions overrides) -
abortMultipartUpload
-
completeMultipartUpload
-
uploadMultipartPart
-
listMultipartUpload
-
listMultipartUploads
-
getMinimumMultipartPartSize
public long getMinimumMultipartPartSize() -
getMaximumMultipartPartSize
public long getMaximumMultipartPartSize() -
getMaximumNumberOfParts
public int getMaximumNumberOfParts() -
deleteAndVerifyContainerGone
This implementation invokesS3Utils.deleteAndVerifyContainerGone(org.jclouds.s3.S3Client, java.lang.String)
- Specified by:
deleteAndVerifyContainerGone
in classBaseBlobStore
- Parameters:
container
- what to delete- Returns:
- whether container was deleted
-
createContainerInLocation
public boolean createContainerInLocation(Location location, String container, CreateContainerOptions options) - Parameters:
options
- controls default access control- See Also:
-