public class S3Link
extends java.lang.Object
DynamoDBMapper
. An S3 link is persisted as
a JSON string in DynamoDB. This link object can be used directly to
upload/download files to S3. Alternatively, the underlying
AmazonS3Client
can be retrieved to
provide full access API to S3.
For example:
AWSCredentialsProvider s3CredentialProvider = ...; DynamoDBMapper mapper = new DynamoDBMapper(..., s3CredentialProvider); String username = "jamestkirk"; User user = new User(); user.setUsername(username); // S3 region can be specified, but is optional S3Link s3link = mapper.createS3Link("my-company-user-avatars", username + ".jpg"); user.setAvatar(s3link); // All meta information of the S3 resource is persisted in DynamoDB, including // region, bucket, and key mapper.save(user); // Upload file to S3 with the link saved in DynamoDB s3link.uploadFrom(new File("/path/to/all/those/user/avatars/" + username + ".jpg")); // Download file from S3 via an S3Link s3link.downloadTo(new File("/path/to/downloads/" + username + ".jpg")); // Full S3 API is available via the canonical AmazonS3Client API. // For example: AmazonS3Client s3 = s3link.getAmazonS3Client(); // etc.The User pojo class used above:
@DynamoDBTable(tableName = "user-table") public class User { private String username; private S3Link avatar; @DynamoDBHashKey public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public S3Link getAvatar() { return avatar; } public void setAvatar(S3Link avatar) { this.avatar = avatar; } }
Modifier and Type | Method and Description |
---|---|
ObjectMetadata |
downloadTo(java.io.File destination)
Convenient method to synchronously download to the specified file from
the S3 object represented by this S3Link.
|
ObjectMetadata |
downloadTo(java.io.File destination,
com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
Same as
downloadTo(File) but allows specifying a request metric
collector. |
ObjectMetadata |
downloadTo(java.io.OutputStream output)
Downloads the data from the object represented by this S3Link to the
specified output stream.
|
ObjectMetadata |
downloadTo(java.io.OutputStream output,
com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
Same as
downloadTo(OutputStream) but allows specifying a request
metric collector. |
static S3Link |
fromJson(S3ClientCache s3cc,
java.lang.String json)
Deserializes from a JSON string.
|
AmazonS3Client |
getAmazonS3Client() |
java.lang.String |
getBucketName()
Gets the name of the bucket containing the object to be downloaded.
|
java.lang.String |
getKey()
Gets the key under which the object to be downloaded is stored.
|
Region |
getS3Region() |
java.net.URL |
getUrl()
Returns a URL for the location of the object represented by this S3Link.
|
void |
setAcl(AccessControlList acl)
Sets the access control list for the object represented by this S3Link.
|
void |
setAcl(AccessControlList acl,
com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
Same as
setAcl(AccessControlList) but allows specifying a
request metric collector. |
void |
setAcl(CannedAccessControlList acl)
Sets the access control list for the object represented by this S3Link.
|
void |
setAcl(CannedAccessControlList acl,
com.amazonaws.metrics.RequestMetricCollector col)
Sets the access control list for the object represented by this S3Link.
|
java.lang.String |
toJson()
Serializes into a JSON string.
|
PutObjectResult |
uploadFrom(byte[] buffer)
Convenience method to synchronously upload from the given buffer to the
Amazon S3 object represented by this S3Link.
|
PutObjectResult |
uploadFrom(byte[] buffer,
com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
Same as
uploadFrom(byte[]) but allows specifying a request
metric collector. |
PutObjectResult |
uploadFrom(java.io.File source)
Convenience method to synchronously upload from the given file to the
Amazon S3 object represented by this S3Link.
|
PutObjectResult |
uploadFrom(java.io.File source,
com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
Same as
uploadFrom(File) but allows specifying a request metric
collector. |
public java.lang.String getKey()
public java.lang.String getBucketName()
public Region getS3Region()
public java.lang.String toJson()
public static S3Link fromJson(S3ClientCache s3cc, java.lang.String json)
s3cc
- the s3 client cache S3ClientCache
json
- the json representation of the s3 link.S3Link
public AmazonS3Client getAmazonS3Client()
public PutObjectResult uploadFrom(java.io.File source)
source
- source file to upload fromPutObjectResult
object containing the information
returned by Amazon S3 for the newly created object.public PutObjectResult uploadFrom(java.io.File source, com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
uploadFrom(File)
but allows specifying a request metric
collector.source
- the file to upload from.requestMetricCollector
- the request metric collector.PutObjectRequest
public PutObjectResult uploadFrom(byte[] buffer)
buffer
- The buffer containing the data to upload.PutObjectResult
object containing the information
returned by Amazon S3 for the newly created object.public PutObjectResult uploadFrom(byte[] buffer, com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
uploadFrom(byte[])
but allows specifying a request
metric collector.buffer
- the byte buffer.requestMetricCollector
- the request metrics collector.PutObjectResult
public void setAcl(CannedAccessControlList acl)
acl
- The access control list describing the new permissions for the
object represented by this S3Link.public void setAcl(CannedAccessControlList acl, com.amazonaws.metrics.RequestMetricCollector col)
acl
- The access control list describing the new permissions for the
object represented by this S3Link.col
- the request metrics collector.public void setAcl(AccessControlList acl)
acl
- The access control list describing the new permissions for the
object represented by this S3Link.public void setAcl(AccessControlList acl, com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
setAcl(AccessControlList)
but allows specifying a
request metric collector.acl
- an access control list.requestMetricCollector
- the request metrics collector.public java.net.URL getUrl()
If the object represented by this S3Link has public read permissions (ex:
CannedAccessControlList.PublicRead
), then this URL can be
directly accessed to retrieve the object data.
public ObjectMetadata downloadTo(java.io.File destination)
destination
- destination file to download topublic ObjectMetadata downloadTo(java.io.File destination, com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
downloadTo(File)
but allows specifying a request metric
collector.destination
- the file to download to.requestMetricCollector
- the request metrics collector.ObjectMetadata
public ObjectMetadata downloadTo(java.io.OutputStream output)
output
- The output stream to write the object's data to.public ObjectMetadata downloadTo(java.io.OutputStream output, com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
downloadTo(OutputStream)
but allows specifying a request
metric collector.output
- the outputstream to downloadto.requestMetricCollector
- the request metrics collector.ObjectMetadata
Copyright © 2018 Amazon Web Services, Inc. All Rights Reserved.