public class S3Link extends 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
and TransferManager
can be retrieved to
provide full access API to S3.
For example:
The User pojo class used above: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 and TransferManager API. // For example: AmazonS3Client s3 = s3link.getAmazonS3Client(); TransferManager s3m = s3link.getTransferManager(); // etc.
@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(File destination)
Convenient method to synchronously download to the specified file from
the S3 object represented by this S3Link.
|
AmazonS3Client |
getAmazonS3Client() |
String |
getBucketName() |
String |
getKey() |
Region |
getS3Region() |
TransferManager |
getTransferManager() |
PutObjectResult |
uploadFrom(File source)
Convenient method to synchronously upload from the given file to the
S3 object represented by this S3Link.
|
public String getKey()
public String getBucketName()
public Region getS3Region()
public AmazonS3Client getAmazonS3Client()
public TransferManager getTransferManager()
public PutObjectResult uploadFrom(File source)
source
- source file to upload fromPutObjectResult
object containing the information
returned by Amazon S3 for the newly created object.public ObjectMetadata downloadTo(File destination)
destination
- destination file to download toCopyright © 2013 Amazon Web Services, Inc. All Rights Reserved.