Class AbstractPutObjectRequest
- java.lang.Object
-
- com.amazonaws.AmazonWebServiceRequest
-
- com.amazonaws.services.s3.model.AbstractPutObjectRequest
-
- All Implemented Interfaces:
ReadLimitInfo
,S3DataSource
,SSEAwsKeyManagementParamsProvider
,SSECustomerKeyProvider
,Serializable
,Cloneable
- Direct Known Subclasses:
PutObjectRequest
,UploadObjectRequest
public abstract class AbstractPutObjectRequest extends AmazonWebServiceRequest implements Cloneable, SSECustomerKeyProvider, SSEAwsKeyManagementParamsProvider, S3DataSource, Serializable
Abstract base class for a put object or put object like request.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.amazonaws.services.s3.model.S3DataSource
S3DataSource.Utils
-
-
Field Summary
-
Fields inherited from class com.amazonaws.AmazonWebServiceRequest
NOOP
-
-
Constructor Summary
Constructors Modifier Constructor Description AbstractPutObjectRequest(String bucketName, String key, File file)
Constructs a newAbstractPutObjectRequest
object to upload a file to the specified bucket and key.protected
AbstractPutObjectRequest(String bucketName, String key, InputStream input, ObjectMetadata metadata)
Constructs a newAbstractPutObjectRequest
object to upload a stream of data to the specified bucket and key.AbstractPutObjectRequest(String bucketName, String key, String redirectLocation)
Constructs a newAbstractPutObjectRequest
object with redirect location.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description abstract AbstractPutObjectRequest
clone()
Creates a shallow clone of this request.protected <T extends AbstractPutObjectRequest>
TcopyPutObjectBaseTo(T target)
AccessControlList
getAccessControlList()
Returns the optional access control list for the new object.String
getBucketName()
Gets the name of the existing bucket where this request will upload a new object to.CannedAccessControlList
getCannedAcl()
Gets the optional pre-configured access control policy to use for the new object.File
getFile()
Gets the path and name of the file containing the data to be uploaded to Amazon S3.InputStream
getInputStream()
Gets the input stream containing the data to be uploaded to Amazon S3.String
getKey()
Gets the key under which to store the new object.ObjectMetadata
getMetadata()
Gets the optional metadata instructing Amazon S3 how to handle the uploaded data (e.g. custom user metadata, hooks for specifying content type, etc.).ProgressListener
getProgressListener()
Deprecated.useAmazonWebServiceRequest.getGeneralProgressListener()
instead.String
getRedirectLocation()
Gets the optional redirect location for the new object.SSEAwsKeyManagementParams
getSSEAwsKeyManagementParams()
Returns the AWS Key Management System parameters used to encrypt the object on server side.SSECustomerKey
getSSECustomerKey()
Returns the optional customer-provided server-side encryption key to use to encrypt the uploaded object.String
getStorageClass()
Gets the optional Amazon S3 storage class to use when storing the new object.void
setAccessControlList(AccessControlList accessControlList)
Sets the optional access control list for the new object.void
setBucketName(String bucketName)
Sets the name of an existing bucket where this request will upload a new object to.void
setCannedAcl(CannedAccessControlList cannedAcl)
Sets the optional pre-configured access control policy to use for the new object.void
setFile(File file)
Sets the path and name of the file containing the data to be uploaded to Amazon S3.void
setInputStream(InputStream inputStream)
Sets the input stream containing the data to be uploaded to Amazon S3.void
setKey(String key)
Sets the key under which to store the new object.void
setMetadata(ObjectMetadata metadata)
Sets the optional metadata instructing Amazon S3 how to handle the uploaded data (e.g. custom user metadata, hooks for specifying content type, etc.).void
setProgressListener(ProgressListener progressListener)
Deprecated.void
setRedirectLocation(String redirectLocation)
Sets the optional redirect location for the new object.void
setSSEAwsKeyManagementParams(SSEAwsKeyManagementParams params)
Sets the AWS Key Management System parameters used to encrypt the object on server side.void
setSSECustomerKey(SSECustomerKey sseKey)
Sets the optional customer-provided server-side encryption key to use to encrypt the uploaded object.void
setStorageClass(StorageClass storageClass)
Sets the optional Amazon S3 storage class to use when storing the new object.void
setStorageClass(String storageClass)
Sets the optional Amazon S3 storage class to use when storing the new object.<T extends AbstractPutObjectRequest>
TwithAccessControlList(AccessControlList accessControlList)
Sets the optional access control list for the new object.<T extends AbstractPutObjectRequest>
TwithBucketName(String bucketName)
Sets the name of the bucket where this request will upload a new object to.<T extends AbstractPutObjectRequest>
TwithCannedAcl(CannedAccessControlList cannedAcl)
Sets the optional pre-configured access control policy to use for the new object.<T extends AbstractPutObjectRequest>
TwithFile(File file)
Sets the file containing the data to be uploaded to Amazon S3.<T extends AbstractPutObjectRequest>
TwithInputStream(InputStream inputStream)
Sets the input stream containing the data to be uploaded to Amazon S3.<T extends AbstractPutObjectRequest>
TwithKey(String key)
Sets the key under which to store the new object.<T extends AbstractPutObjectRequest>
TwithMetadata(ObjectMetadata metadata)
Sets the optional metadata instructing Amazon S3 how to handle the uploaded data (e.g. custom user metadata, hooks for specifying content type, etc.).<T extends AbstractPutObjectRequest>
TwithProgressListener(ProgressListener progressListener)
Deprecated.<T extends AbstractPutObjectRequest>
TwithRedirectLocation(String redirectLocation)
Sets the optional redirect location for the new object.Returns thisAbstractPutObjectRequest
, enabling additional method calls to be chained together.<T extends AbstractPutObjectRequest>
TwithSSEAwsKeyManagementParams(SSEAwsKeyManagementParams sseAwsKeyManagementParams)
Sets the AWS Key Management System parameters used to encrypt the object on server side.<T extends AbstractPutObjectRequest>
TwithSSECustomerKey(SSECustomerKey sseKey)
Sets the optional customer-provided server-side encryption key to use to encrypt the uploaded object, and returns the updated request object so that additional method calls can be chained together.<T extends AbstractPutObjectRequest>
TwithStorageClass(StorageClass storageClass)
Sets the optional Amazon S3 storage class to use when storing the new object.<T extends AbstractPutObjectRequest>
TwithStorageClass(String storageClass)
Sets the optional Amazon S3 storage class to use when storing the new object.-
Methods inherited from class com.amazonaws.AmazonWebServiceRequest
copyBaseTo, getCloneRoot, getCloneSource, getCustomQueryParameters, getCustomRequestHeaders, getGeneralProgressListener, getReadLimit, getRequestClientOptions, getRequestCredentials, getRequestCredentialsProvider, getRequestMetricCollector, getSdkClientExecutionTimeout, getSdkRequestTimeout, putCustomQueryParameter, putCustomRequestHeader, setGeneralProgressListener, setRequestCredentials, setRequestCredentialsProvider, setRequestMetricCollector, setSdkClientExecutionTimeout, setSdkRequestTimeout, withGeneralProgressListener, withRequestMetricCollector, withSdkClientExecutionTimeout, withSdkRequestTimeout
-
-
-
-
Constructor Detail
-
AbstractPutObjectRequest
public AbstractPutObjectRequest(String bucketName, String key, File file)
Constructs a newAbstractPutObjectRequest
object to upload a file to the specified bucket and key. After constructing the request, users may optionally specify object metadata or a canned ACL as well.- Parameters:
bucketName
- The name of an existing bucket to which the new object will be uploaded.key
- The key under which to store the new object.file
- The path of the file to upload to Amazon S3.
-
AbstractPutObjectRequest
public AbstractPutObjectRequest(String bucketName, String key, String redirectLocation)
Constructs a newAbstractPutObjectRequest
object with redirect location. After constructing the request, users may optionally specify object metadata or a canned ACL as well.- Parameters:
bucketName
- The name of an existing bucket to which the new object will be uploaded.key
- The key under which to store the new object.redirectLocation
- The redirect location of this new object.
-
AbstractPutObjectRequest
protected AbstractPutObjectRequest(String bucketName, String key, InputStream input, ObjectMetadata metadata)
Constructs a newAbstractPutObjectRequest
object to upload a stream of data to the specified bucket and key. After constructing the request, users may optionally specify object metadata or a canned ACL as well.Content length for the data stream must be specified in the object metadata parameter; Amazon S3 requires it be passed in before the data is uploaded. Failure to specify a content length will cause the entire contents of the input stream to be buffered locally in memory so that the content length can be calculated, which can result in negative performance problems.
- Parameters:
bucketName
- The name of an existing bucket to which the new object will be uploaded.key
- The key under which to store the new object.input
- The stream of data to upload to Amazon S3.metadata
- The object metadata. At minimum this specifies the content length for the stream of data being uploaded.
-
-
Method Detail
-
getBucketName
public String getBucketName()
Gets the name of the existing bucket where this request will upload a new object to. In order to upload the object, users must havePermission.Write
permission granted.- Returns:
- The name of an existing bucket where this request will upload a new object to.
- See Also:
setBucketName(String)
,withBucketName(String)
-
setBucketName
public void setBucketName(String bucketName)
Sets the name of an existing bucket where this request will upload a new object to. In order to upload the object, users must havePermission.Write
permission granted.- Parameters:
bucketName
- The name of an existing bucket where this request will upload a new object to. In order to upload the object, users must havePermission.Write
permission granted.- See Also:
getBucketName()
,withBucketName(String)
-
withBucketName
public <T extends AbstractPutObjectRequest> T withBucketName(String bucketName)
Sets the name of the bucket where this request will upload a new object to. Returns this object, enabling additional method calls to be chained together.In order to upload the object, users must have
Permission.Write
permission granted.- Parameters:
bucketName
- The name of an existing bucket where this request will upload a new object to. In order to upload the object, users must havePermission.Write
permission granted.- Returns:
- This
AbstractPutObjectRequest
, enabling additional method calls to be chained together. - See Also:
getBucketName()
,setBucketName(String)
-
getKey
public String getKey()
Gets the key under which to store the new object.- Returns:
- The key under which to store the new object.
- See Also:
setKey(String)
,withKey(String)
-
setKey
public void setKey(String key)
Sets the key under which to store the new object.- Parameters:
key
- The key under which to store the new object.- See Also:
getKey()
,withKey(String)
-
withKey
public <T extends AbstractPutObjectRequest> T withKey(String key)
Sets the key under which to store the new object. Returns this object, enabling additional method calls to be chained together.- Parameters:
key
- The key under which to store the new object.- Returns:
- This
AbstractPutObjectRequest
, enabling additional method calls to be chained together. - See Also:
getKey()
,setKey(String)
-
getStorageClass
public String getStorageClass()
Gets the optional Amazon S3 storage class to use when storing the new object. If not specified, the default standard storage class is used when storing the object.For more information on available Amazon S3 storage classes, see the
StorageClass
enumeration.- Returns:
- The Amazon S3 storage class to use when storing the newly copied object.
- See Also:
setStorageClass(String)
,setStorageClass(StorageClass)
,withStorageClass(StorageClass)
,withStorageClass(String)
-
setStorageClass
public void setStorageClass(String storageClass)
Sets the optional Amazon S3 storage class to use when storing the new object. If not specified, the default standard storage class will be used when storing the new object.For more information on Amazon S3 storage classes and available values, see the
StorageClass
enumeration.- Parameters:
storageClass
- The storage class to use when storing the new object.- See Also:
getStorageClass()
,setStorageClass(String)
,withStorageClass(StorageClass)
,withStorageClass(String)
-
withStorageClass
public <T extends AbstractPutObjectRequest> T withStorageClass(String storageClass)
Sets the optional Amazon S3 storage class to use when storing the new object. Returns thisAbstractPutObjectRequest
, enabling additional method calls to be chained together. If not specified, the default standard storage class will be used when storing the object.For more information on Amazon S3 storage classes and available values, see the
StorageClass
enumeration.- Parameters:
storageClass
- The storage class to use when storing the new object.- Returns:
- This
AbstractPutObjectRequest
, enabling additional method calls to be chained together. - See Also:
getStorageClass()
,setStorageClass(StorageClass)
,setStorageClass(String)
,withStorageClass(StorageClass)
-
setStorageClass
public void setStorageClass(StorageClass storageClass)
Sets the optional Amazon S3 storage class to use when storing the new object. If not specified, the default standard storage class will be used when storing the object.For more information on Amazon S3 storage classes and available values, see the
StorageClass
enumeration.- Parameters:
storageClass
- The storage class to use when storing the new object.- See Also:
getStorageClass()
,setStorageClass(String)
-
withStorageClass
public <T extends AbstractPutObjectRequest> T withStorageClass(StorageClass storageClass)
Sets the optional Amazon S3 storage class to use when storing the new object. Returns thisAbstractPutObjectRequest
, enabling additional method calls to be chained together. If not specified, the default standard storage class will be used when storing the object.For more information on Amazon S3 storage classes and available values, see the
StorageClass
enumeration.- Parameters:
storageClass
- The storage class to use when storing the new object.- Returns:
- This
AbstractPutObjectRequest
, enabling additional method calls to be chained together. - See Also:
getStorageClass()
,setStorageClass(StorageClass)
,setStorageClass(String)
,withStorageClass(String)
-
getFile
public File getFile()
Gets the path and name of the file containing the data to be uploaded to Amazon S3. Either specify a file or an input stream containing the data to be uploaded to Amazon S3; both cannot be specified.- Specified by:
getFile
in interfaceS3DataSource
- Returns:
- The path and name of the file containing the data to be uploaded to Amazon S3.
- See Also:
setFile(File)
,withFile(File)
,setInputStream(InputStream)
,withInputStream(InputStream)
-
setFile
public void setFile(File file)
Sets the path and name of the file containing the data to be uploaded to Amazon S3. Either specify a file or an input stream containing the data to be uploaded to Amazon S3; both cannot be specified.- Specified by:
setFile
in interfaceS3DataSource
- Parameters:
file
- The path and name of the file containing the data to be uploaded to Amazon S3.- See Also:
getFile()
,withFile(File)
,getInputStream()
,withInputStream(InputStream)
-
withFile
public <T extends AbstractPutObjectRequest> T withFile(File file)
Sets the file containing the data to be uploaded to Amazon S3. Returns thisAbstractPutObjectRequest
, enabling additional method calls to be chained together.Either specify a file or an input stream containing the data to be uploaded to Amazon S3; both cannot be specified.
- Parameters:
file
- The file containing the data to be uploaded to Amazon S3.- Returns:
- This
AbstractPutObjectRequest
, enabling additional method calls to be chained together. - See Also:
getFile()
,setFile(File)
,getInputStream()
,setInputStream(InputStream)
-
getMetadata
public ObjectMetadata getMetadata()
Gets the optional metadata instructing Amazon S3 how to handle the uploaded data (e.g. custom user metadata, hooks for specifying content type, etc.).If uploading from an input stream, always specify metadata with the content size set. Otherwise the contents of the input stream have to be buffered in memory before being sent to Amazon S3. This can cause very negative performance impacts.
- Returns:
- The optional metadata instructing Amazon S3 how to handle the uploaded data (e.g. custom user metadata, hooks for specifying content type, etc.).
- See Also:
setMetadata(ObjectMetadata)
,withMetadata(ObjectMetadata)
-
setMetadata
public void setMetadata(ObjectMetadata metadata)
Sets the optional metadata instructing Amazon S3 how to handle the uploaded data (e.g. custom user metadata, hooks for specifying content type, etc.).If uploading from an input stream, always specify metadata with the content size set. Otherwise the contents of the input stream have to be buffered in memory before being sent to Amazon S3. This can cause very negative performance impacts.
- Parameters:
metadata
- The optional metadata instructing Amazon S3 how to handle the uploaded data (e.g. custom user metadata, hooks for specifying content type, etc.).- See Also:
getMetadata()
,withMetadata(ObjectMetadata)
-
withMetadata
public <T extends AbstractPutObjectRequest> T withMetadata(ObjectMetadata metadata)
Sets the optional metadata instructing Amazon S3 how to handle the uploaded data (e.g. custom user metadata, hooks for specifying content type, etc.). Returns thisAbstractPutObjectRequest
, enabling additional method calls to be chained together.If uploading from an input stream, always specify metadata with the content size set. Otherwise the contents of the input stream have to be buffered in memory before being sent to Amazon S3. This can cause very negative performance impacts.
- Parameters:
metadata
- The optional metadata instructing Amazon S3 how to handle the uploaded data (e.g. custom user metadata, hooks for specifying content type, etc.).- Returns:
- This
AbstractPutObjectRequest
, enabling additional method calls to be chained together. - See Also:
getMetadata()
,setMetadata(ObjectMetadata)
-
getCannedAcl
public CannedAccessControlList getCannedAcl()
Gets the optional pre-configured access control policy to use for the new object.- Returns:
- The optional pre-configured access control policy to use for the new object.
- See Also:
setCannedAcl(CannedAccessControlList)
,withCannedAcl(CannedAccessControlList)
-
setCannedAcl
public void setCannedAcl(CannedAccessControlList cannedAcl)
Sets the optional pre-configured access control policy to use for the new object.- Parameters:
cannedAcl
- The optional pre-configured access control policy to use for the new object.- See Also:
getCannedAcl()
,withCannedAcl(CannedAccessControlList)
-
withCannedAcl
public <T extends AbstractPutObjectRequest> T withCannedAcl(CannedAccessControlList cannedAcl)
Sets the optional pre-configured access control policy to use for the new object. Returns thisAbstractPutObjectRequest
, enabling additional method calls to be chained together.- Parameters:
cannedAcl
- The optional pre-configured access control policy to use for the new object.- Returns:
- This
AbstractPutObjectRequest
, enabling additional method calls to be chained together. - See Also:
getCannedAcl()
,setCannedAcl(CannedAccessControlList)
-
getAccessControlList
public AccessControlList getAccessControlList()
Returns the optional access control list for the new object. If specified, cannedAcl will be ignored.
-
setAccessControlList
public void setAccessControlList(AccessControlList accessControlList)
Sets the optional access control list for the new object. If specified, cannedAcl will be ignored.- Parameters:
accessControlList
- The access control list for the new object.
-
withAccessControlList
public <T extends AbstractPutObjectRequest> T withAccessControlList(AccessControlList accessControlList)
Sets the optional access control list for the new object. If specified, cannedAcl will be ignored. Returns thisAbstractPutObjectRequest
, enabling additional method calls to be chained together.- Parameters:
accessControlList
- The access control list for the new object.
-
getInputStream
public InputStream getInputStream()
Gets the input stream containing the data to be uploaded to Amazon S3. The user of this request must either specify a file or an input stream containing the data to be uploaded to Amazon S3; both cannot be specified.- Specified by:
getInputStream
in interfaceS3DataSource
- Returns:
- The input stream containing the data to be uploaded to Amazon S3. Either specify a file or an input stream containing the data to be uploaded to Amazon S3, not both.
- See Also:
setInputStream(InputStream)
,withInputStream(InputStream)
,setFile(File)
,withFile(File)
-
setInputStream
public void setInputStream(InputStream inputStream)
Sets the input stream containing the data to be uploaded to Amazon S3. Either specify a file or an input stream containing the data to be uploaded to Amazon S3; both cannot be specified.- Specified by:
setInputStream
in interfaceS3DataSource
- Parameters:
inputStream
- The input stream containing the data to be uploaded to Amazon S3. Either specify a file or an input stream containing the data to be uploaded to Amazon S3, not both.- See Also:
getInputStream()
,withInputStream(InputStream)
,getFile()
,withFile(File)
-
withInputStream
public <T extends AbstractPutObjectRequest> T withInputStream(InputStream inputStream)
Sets the input stream containing the data to be uploaded to Amazon S3. Returns thisAbstractPutObjectRequest
, enabling additional method calls to be chained together.Either specify a file or an input stream containing the data to be uploaded to Amazon S3; both cannot be specified.
- Parameters:
inputStream
- The InputStream containing the data to be uploaded to Amazon S3.- Returns:
- This PutObjectRequest, so that additional method calls can be chained together.
- See Also:
getInputStream()
,setInputStream(InputStream)
,getFile()
,setFile(File)
-
setRedirectLocation
public void setRedirectLocation(String redirectLocation)
Sets the optional redirect location for the new object.- Parameters:
redirectLocation
- The redirect location for the new object.
-
getRedirectLocation
public String getRedirectLocation()
Gets the optional redirect location for the new object.
-
withRedirectLocation
public <T extends AbstractPutObjectRequest> T withRedirectLocation(String redirectLocation)
Sets the optional redirect location for the new object.Returns thisAbstractPutObjectRequest
, enabling additional method calls to be chained together.- Parameters:
redirectLocation
- The redirect location for the new object.
-
getSSECustomerKey
public SSECustomerKey getSSECustomerKey()
Description copied from interface:SSECustomerKeyProvider
Returns the optional customer-provided server-side encryption key to use to encrypt the uploaded object.- Specified by:
getSSECustomerKey
in interfaceSSECustomerKeyProvider
- Returns:
- The optional customer-provided server-side encryption key to use to encrypt the uploaded object.
-
setSSECustomerKey
public void setSSECustomerKey(SSECustomerKey sseKey)
Sets the optional customer-provided server-side encryption key to use to encrypt the uploaded object.- Parameters:
sseKey
- The optional customer-provided server-side encryption key to use to encrypt the uploaded object.
-
withSSECustomerKey
public <T extends AbstractPutObjectRequest> T withSSECustomerKey(SSECustomerKey sseKey)
Sets the optional customer-provided server-side encryption key to use to encrypt the uploaded object, and returns the updated request object so that additional method calls can be chained together.- Parameters:
sseKey
- The optional customer-provided server-side encryption key to use to encrypt the uploaded object.- Returns:
- This updated request object so that additional method calls can be chained together.
-
setProgressListener
@Deprecated public void setProgressListener(ProgressListener progressListener)
Deprecated.Sets the optional progress listener for receiving updates for object upload status.- Parameters:
progressListener
- The legacy progress listener that is used exclusively for Amazon S3 client.
-
getProgressListener
@Deprecated public ProgressListener getProgressListener()
Deprecated.useAmazonWebServiceRequest.getGeneralProgressListener()
instead.Returns the optional progress listener for receiving updates about object upload status.- Returns:
- the optional progress listener for receiving updates about object upload status.
-
withProgressListener
@Deprecated public <T extends AbstractPutObjectRequest> T withProgressListener(ProgressListener progressListener)
Deprecated.Sets the optional progress listener for receiving updates about object upload status, and returns this updated object so that additional method calls can be chained together.- Parameters:
progressListener
- The legacy progress listener that is used exclusively for Amazon S3 client.- Returns:
- This updated PutObjectRequest object.
-
getSSEAwsKeyManagementParams
public SSEAwsKeyManagementParams getSSEAwsKeyManagementParams()
Returns the AWS Key Management System parameters used to encrypt the object on server side.- Specified by:
getSSEAwsKeyManagementParams
in interfaceSSEAwsKeyManagementParamsProvider
- Returns:
- The optional SSEAwsKeyManagementParams to use to encrypt the uploaded object.
-
setSSEAwsKeyManagementParams
public void setSSEAwsKeyManagementParams(SSEAwsKeyManagementParams params)
Sets the AWS Key Management System parameters used to encrypt the object on server side.
-
withSSEAwsKeyManagementParams
public <T extends AbstractPutObjectRequest> T withSSEAwsKeyManagementParams(SSEAwsKeyManagementParams sseAwsKeyManagementParams)
Sets the AWS Key Management System parameters used to encrypt the object on server side.- Returns:
- returns the update PutObjectRequest
-
clone
public abstract AbstractPutObjectRequest clone()
Description copied from class:AmazonWebServiceRequest
Creates a shallow clone of this request. Explicitly does not clone the deep structure of the request object.- Overrides:
clone
in classAmazonWebServiceRequest
- See Also:
Object.clone()
-
copyPutObjectBaseTo
protected final <T extends AbstractPutObjectRequest> T copyPutObjectBaseTo(T target)
-
-