|
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||
java.lang.Objectcom.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.S3Link
public class S3Link
An S3 Link that works with 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:
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.
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;
}
}
| Method Summary | |
|---|---|
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()
|
TransferManager |
getTransferManager()
|
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)
|
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. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Method Detail |
|---|
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)
public AmazonS3Client getAmazonS3Client()
public TransferManager getTransferManager()
public PutObjectResult uploadFrom(java.io.File source)
source - source file to upload from
PutObjectResult 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.
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.
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)
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.
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 to
public ObjectMetadata downloadTo(java.io.File destination,
com.amazonaws.metrics.RequestMetricCollector requestMetricCollector)
downloadTo(File) but allows specifying a
request metric collector.
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.
|
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||