Struct aws_sdk_s3::input::PutObjectInput
source · #[non_exhaustive]pub struct PutObjectInput {
pub body: ByteStream,
/* private fields */
}
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.body: ByteStream
Object data.
Implementations§
source§impl PutObjectInput
impl PutObjectInput
sourcepub async fn presigned(
self,
config: &Config,
presigning_config: PresigningConfig
) -> Result<PresignedRequest, SdkError<PutObjectError>>
pub async fn presigned(
self,
config: &Config,
presigning_config: PresigningConfig
) -> Result<PresignedRequest, SdkError<PutObjectError>>
Creates a presigned request for this operation.
The credentials provider from the config
will be used to generate the request’s signature.
The presigning_config
provides additional presigning-specific config values, such as the
amount of time the request should be valid for after creation.
Presigned requests can be given to other users or applications to access a resource or perform an operation without having access to the AWS security credentials.
Examples found in repository?
13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493
pub async fn presigned(
self,
presigning_config: crate::presigning::config::PresigningConfig,
) -> Result<
crate::presigning::request::PresignedRequest,
aws_smithy_http::result::SdkError<crate::error::PutObjectError>,
> {
let input = self
.inner
.build()
.map_err(aws_smithy_http::result::SdkError::construction_failure)?;
input.presigned(&self.handle.conf, presigning_config).await
}
sourcepub async fn make_operation(
self,
_config: &Config
) -> Result<Operation<PutObject, AwsResponseRetryClassifier>, BuildError>
pub async fn make_operation(
self,
_config: &Config
) -> Result<Operation<PutObject, AwsResponseRetryClassifier>, BuildError>
Consumes the builder and constructs an Operation<PutObject
>
Examples found in repository?
13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471
pub async fn customize(
self,
) -> std::result::Result<
crate::operation::customize::CustomizableOperation<
crate::operation::PutObject,
aws_http::retry::AwsResponseRetryClassifier,
>,
aws_smithy_http::result::SdkError<crate::error::PutObjectError>,
> {
let handle = self.handle.clone();
let operation = self
.inner
.build()
.map_err(aws_smithy_http::result::SdkError::construction_failure)?
.make_operation(&handle.conf)
.await
.map_err(aws_smithy_http::result::SdkError::construction_failure)?;
Ok(crate::operation::customize::CustomizableOperation { handle, operation })
}
/// Sends the request and returns the response.
///
/// If an error occurs, an `SdkError` will be returned with additional details that
/// can be matched against.
///
/// By default, any retryable failures will be retried twice. Retry behavior
/// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
/// set when configuring the client.
pub async fn send(
self,
) -> std::result::Result<
crate::output::PutObjectOutput,
aws_smithy_http::result::SdkError<crate::error::PutObjectError>,
> {
let op = self
.inner
.build()
.map_err(aws_smithy_http::result::SdkError::construction_failure)?
.make_operation(&self.handle.conf)
.await
.map_err(aws_smithy_http::result::SdkError::construction_failure)?;
self.handle.client.call(op).await
}
sourcepub fn builder() -> Builder
pub fn builder() -> Builder
Creates a new builder-style object to manufacture PutObjectInput
.
source§impl PutObjectInput
impl PutObjectInput
sourcepub fn acl(&self) -> Option<&ObjectCannedAcl>
pub fn acl(&self) -> Option<&ObjectCannedAcl>
The canned ACL to apply to the object. For more information, see Canned ACL.
This action is not supported by Amazon S3 on Outposts.
sourcepub fn body(&self) -> &ByteStream
pub fn body(&self) -> &ByteStream
Object data.
sourcepub fn bucket(&self) -> Option<&str>
pub fn bucket(&self) -> Option<&str>
The bucket name to which the PUT action was initiated.
When using this action with an access point, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide.
When using this action with Amazon S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com
. When using this action with S3 on Outposts through the Amazon Web Services SDKs, you provide the Outposts bucket ARN in place of the bucket name. For more information about S3 on Outposts ARNs, see Using Amazon S3 on Outposts in the Amazon S3 User Guide.
sourcepub fn cache_control(&self) -> Option<&str>
pub fn cache_control(&self) -> Option<&str>
Can be used to specify caching behavior along the request/reply chain. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.
sourcepub fn content_disposition(&self) -> Option<&str>
pub fn content_disposition(&self) -> Option<&str>
Specifies presentational information for the object. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1.
sourcepub fn content_encoding(&self) -> Option<&str>
pub fn content_encoding(&self) -> Option<&str>
Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11.
sourcepub fn content_language(&self) -> Option<&str>
pub fn content_language(&self) -> Option<&str>
The language the content is in.
sourcepub fn content_length(&self) -> i64
pub fn content_length(&self) -> i64
Size of the body in bytes. This parameter is useful when the size of the body cannot be determined automatically. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13.
sourcepub fn content_md5(&self) -> Option<&str>
pub fn content_md5(&self) -> Option<&str>
The base64-encoded 128-bit MD5 digest of the message (without the headers) according to RFC 1864. This header can be used as a message integrity check to verify that the data is the same data that was originally sent. Although it is optional, we recommend using the Content-MD5 mechanism as an end-to-end integrity check. For more information about REST request authentication, see REST Authentication.
sourcepub fn content_type(&self) -> Option<&str>
pub fn content_type(&self) -> Option<&str>
A standard MIME type describing the format of the contents. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17.
sourcepub fn checksum_algorithm(&self) -> Option<&ChecksumAlgorithm>
pub fn checksum_algorithm(&self) -> Option<&ChecksumAlgorithm>
Indicates the algorithm used to create the checksum for the object when using the SDK. This header will not provide any additional functionality if not using the SDK. When sending this header, there must be a corresponding x-amz-checksum
or x-amz-trailer
header sent. Otherwise, Amazon S3 fails the request with the HTTP status code 400 Bad Request
. For more information, see Checking object integrity in the Amazon S3 User Guide.
If you provide an individual checksum, Amazon S3 ignores any provided ChecksumAlgorithm
parameter.
Examples found in repository?
20749 20750 20751 20752 20753 20754 20755 20756 20757 20758 20759 20760 20761 20762 20763 20764 20765 20766 20767 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 20785 20786 20787 20788 20789 20790 20791 20792 20793 20794 20795 20796 20797 20798 20799 20800 20801 20802 20803 20804 20805 20806 20807 20808 20809 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20821 20822 20823 20824 20825 20826 20827 20828 20829 20830 20831 20832 20833 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20846 20847 20848 20849 20850 20851 20852 20853 20854 20855 20856 20857 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20869 20870 20871 20872 20873 20874 20875 20876 20877 20878 20879 20880 20881 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 20899 20900 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20911 20912 20913 20914 20915 20916 20917 20918 20919 20920 20921 20922 20923 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20935 20936 20937 20938 20939 20940 20941 20942 20943 20944 20945 20946 20947 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20960 20961 20962 20963 20964 20965 20966 20967 20968 20969 20970 20971 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20983 20984 20985 20986 20987 20988 20989 20990 20991 20992 20993 20994 20995 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 21013 21014 21015 21016 21017 21018 21019 21020 21021 21022 21023 21024 21025 21026 21027 21028 21029 21030 21031 21032 21033 21034 21035 21036 21037 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 21049 21050 21051 21052 21053 21054 21055 21056 21057 21058 21059 21060 21061 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21073 21074 21075 21076 21077 21078 21079 21080 21081 21082 21083 21084 21085 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21097 21098 21099 21100 21101 21102 21103 21104 21105 21106 21107 21108 21109 21110 21111 21112 21113 21114
async fn _make_presigned_operation(
self,
_config: &crate::config::Config,
) -> std::result::Result<
aws_smithy_http::operation::Operation<
crate::operation::PutObject,
aws_http::retry::AwsResponseRetryClassifier,
>,
aws_smithy_http::operation::error::BuildError,
> {
let checksum_algorithm = self.checksum_algorithm().cloned();
let mut request = {
fn uri_base(
_input: &crate::input::PutObjectInput,
output: &mut String,
) -> Result<(), aws_smithy_http::operation::error::BuildError> {
let input_162 = &_input.bucket;
let input_162 = input_162.as_ref().ok_or_else(|| {
aws_smithy_http::operation::error::BuildError::missing_field(
"bucket",
"cannot be empty or unset",
)
})?;
let bucket = aws_smithy_http::label::fmt_string(
input_162,
aws_smithy_http::label::EncodingStrategy::Default,
);
if bucket.is_empty() {
return Err(
aws_smithy_http::operation::error::BuildError::missing_field(
"bucket",
"cannot be empty or unset",
),
);
}
let input_163 = &_input.key;
let input_163 = input_163.as_ref().ok_or_else(|| {
aws_smithy_http::operation::error::BuildError::missing_field(
"key",
"cannot be empty or unset",
)
})?;
let key = aws_smithy_http::label::fmt_string(
input_163,
aws_smithy_http::label::EncodingStrategy::Greedy,
);
if key.is_empty() {
return Err(
aws_smithy_http::operation::error::BuildError::missing_field(
"key",
"cannot be empty or unset",
),
);
}
write!(output, "/{Bucket}/{Key}", Bucket = bucket, Key = key)
.expect("formatting should succeed");
Ok(())
}
fn uri_query(
_input: &crate::input::PutObjectInput,
mut output: &mut String,
) -> Result<(), aws_smithy_http::operation::error::BuildError> {
let mut query = aws_smithy_http::query::Writer::new(&mut output);
query.push_kv("x-id", "PutObject");
Ok(())
}
#[allow(clippy::unnecessary_wraps)]
fn update_http_builder(
input: &crate::input::PutObjectInput,
builder: http::request::Builder,
) -> std::result::Result<
http::request::Builder,
aws_smithy_http::operation::error::BuildError,
> {
let mut uri = String::new();
uri_base(input, &mut uri)?;
uri_query(input, &mut uri)?;
let builder = crate::http_serde::add_headers_put_object(input, builder)?;
Ok(builder.method("PUT").uri(uri))
}
let mut builder = update_http_builder(&self, http::request::Builder::new())?;
builder
};
let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
#[allow(clippy::useless_conversion)]
let body = aws_smithy_http::body::SdkBody::from(
crate::operation_ser::serialize_payload_put_object_input(self.body)?.into_inner(),
);
let request = request.body(body).expect("should be valid request");
let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
request
.properties_mut()
.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
let mut user_agent = aws_http::user_agent::AwsUserAgent::new_from_environment(
aws_types::os_shim_internal::Env::real(),
crate::API_METADATA.clone(),
);
if let Some(app_name) = _config.app_name() {
user_agent = user_agent.with_app_name(app_name.clone());
}
request.properties_mut().insert(user_agent);
request = request.augment(|mut req, properties| {
let checksum_algorithm = checksum_algorithm.as_ref();
let checksum_algorithm = checksum_algorithm.map(|algorithm| algorithm.as_str());
let checksum_algorithm = match checksum_algorithm {
Some(algo) => Some(
algo.parse::<aws_smithy_checksums::ChecksumAlgorithm>()
.map_err(aws_smithy_http::operation::error::BuildError::other)?,
),
None => None,
};
if let Some(checksum_algorithm) = checksum_algorithm {
crate::http_body_checksum::add_checksum_calculation_to_request(
&mut req,
properties,
checksum_algorithm,
)?;
}
Result::<_, aws_smithy_http::operation::error::BuildError>::Ok(req)
})?;
let mut signing_config = aws_sig_auth::signer::OperationSigningConfig::default_config();
signing_config.signing_options.content_sha256_header = true;
signing_config.signing_options.double_uri_encode = false;
signing_config.signing_options.normalize_uri_path = false;
request.properties_mut().insert(signing_config);
request
.properties_mut()
.insert(aws_types::SigningService::from_static(
_config.signing_service(),
));
if let Some(region) = &_config.region {
request
.properties_mut()
.insert(aws_types::region::SigningRegion::from(region.clone()));
}
let endpoint_params = aws_endpoint::Params::new(_config.region.clone());
request
.properties_mut()
.insert::<aws_smithy_http::endpoint::Result>(
_config.endpoint_resolver.resolve_endpoint(&endpoint_params),
);
if let Some(region) = &_config.region {
request.properties_mut().insert(region.clone());
}
aws_http::auth::set_provider(
&mut request.properties_mut(),
_config.credentials_provider.clone(),
);
let op =
aws_smithy_http::operation::Operation::new(request, crate::operation::PutObject::new())
.with_metadata(aws_smithy_http::operation::Metadata::new("PutObject", "s3"));
let op = op.with_retry_classifier(aws_http::retry::AwsResponseRetryClassifier::new());
Ok(op)
}
///
/// Creates a presigned request for this operation.
///
/// The credentials provider from the `config` will be used to generate the request's signature.
/// The `presigning_config` provides additional presigning-specific config values, such as the
/// amount of time the request should be valid for after creation.
///
/// Presigned requests can be given to other users or applications to access a resource or perform
/// an operation without having access to the AWS security credentials.
///
pub async fn presigned(
self,
config: &crate::config::Config,
presigning_config: crate::presigning::config::PresigningConfig,
) -> Result<
crate::presigning::request::PresignedRequest,
aws_smithy_http::result::SdkError<crate::error::PutObjectError>,
> {
let (mut request, _) = self
._make_presigned_operation(config)
.await
.map_err(aws_smithy_http::result::SdkError::construction_failure)?
.into_request_response();
{
// Change signature type to query params and wire up presigning config
let mut props = request.properties_mut();
props.insert(presigning_config.start_time());
props.insert(aws_sigv4::http_request::SignableBody::UnsignedPayload);
let mut config = props
.get_mut::<aws_sig_auth::signer::OperationSigningConfig>()
.expect("signing config added by make_operation()");
config.signature_type = aws_sig_auth::signer::HttpSignatureType::HttpRequestQueryParams;
config.expires_in = Some(presigning_config.expires());
}
let middleware = crate::middleware::DefaultMiddleware::default();
let mut svc = tower::builder::ServiceBuilder::new()
.layer(&middleware)
.service(crate::presigning::service::PresignedRequestService::new());
use tower::{Service, ServiceExt};
Ok(svc.ready().await?.call(request).await?)
}
/// Consumes the builder and constructs an Operation<[`PutObject`](crate::operation::PutObject)>
#[allow(unused_mut)]
#[allow(clippy::let_and_return)]
#[allow(clippy::needless_borrow)]
pub async fn make_operation(
self,
_config: &crate::config::Config,
) -> std::result::Result<
aws_smithy_http::operation::Operation<
crate::operation::PutObject,
aws_http::retry::AwsResponseRetryClassifier,
>,
aws_smithy_http::operation::error::BuildError,
> {
let checksum_algorithm = self.checksum_algorithm().cloned();
let mut request = {
fn uri_base(
_input: &crate::input::PutObjectInput,
output: &mut String,
) -> Result<(), aws_smithy_http::operation::error::BuildError> {
let input_164 = &_input.bucket;
let input_164 = input_164.as_ref().ok_or_else(|| {
aws_smithy_http::operation::error::BuildError::missing_field(
"bucket",
"cannot be empty or unset",
)
})?;
let bucket = aws_smithy_http::label::fmt_string(
input_164,
aws_smithy_http::label::EncodingStrategy::Default,
);
if bucket.is_empty() {
return Err(
aws_smithy_http::operation::error::BuildError::missing_field(
"bucket",
"cannot be empty or unset",
),
);
}
let input_165 = &_input.key;
let input_165 = input_165.as_ref().ok_or_else(|| {
aws_smithy_http::operation::error::BuildError::missing_field(
"key",
"cannot be empty or unset",
)
})?;
let key = aws_smithy_http::label::fmt_string(
input_165,
aws_smithy_http::label::EncodingStrategy::Greedy,
);
if key.is_empty() {
return Err(
aws_smithy_http::operation::error::BuildError::missing_field(
"key",
"cannot be empty or unset",
),
);
}
write!(output, "/{Bucket}/{Key}", Bucket = bucket, Key = key)
.expect("formatting should succeed");
Ok(())
}
fn uri_query(
_input: &crate::input::PutObjectInput,
mut output: &mut String,
) -> Result<(), aws_smithy_http::operation::error::BuildError> {
let mut query = aws_smithy_http::query::Writer::new(&mut output);
query.push_kv("x-id", "PutObject");
Ok(())
}
#[allow(clippy::unnecessary_wraps)]
fn update_http_builder(
input: &crate::input::PutObjectInput,
builder: http::request::Builder,
) -> std::result::Result<
http::request::Builder,
aws_smithy_http::operation::error::BuildError,
> {
let mut uri = String::new();
uri_base(input, &mut uri)?;
uri_query(input, &mut uri)?;
let builder = crate::http_serde::add_headers_put_object(input, builder)?;
Ok(builder.method("PUT").uri(uri))
}
let mut builder = update_http_builder(&self, http::request::Builder::new())?;
builder = aws_smithy_http::header::set_request_header_if_absent(
builder,
http::header::CONTENT_TYPE,
"application/octet-stream",
);
builder
};
let mut properties = aws_smithy_http::property_bag::SharedPropertyBag::new();
#[allow(clippy::useless_conversion)]
let body = aws_smithy_http::body::SdkBody::from(
crate::operation_ser::serialize_payload_put_object_input(self.body)?.into_inner(),
);
if let Some(content_length) = body.content_length() {
request = aws_smithy_http::header::set_request_header_if_absent(
request,
http::header::CONTENT_LENGTH,
content_length,
);
}
let request = request.body(body).expect("should be valid request");
let mut request = aws_smithy_http::operation::Request::from_parts(request, properties);
request
.properties_mut()
.insert(aws_smithy_http::http_versions::DEFAULT_HTTP_VERSION_LIST.clone());
let mut user_agent = aws_http::user_agent::AwsUserAgent::new_from_environment(
aws_types::os_shim_internal::Env::real(),
crate::API_METADATA.clone(),
);
if let Some(app_name) = _config.app_name() {
user_agent = user_agent.with_app_name(app_name.clone());
}
request.properties_mut().insert(user_agent);
request = request.augment(|mut req, properties| {
let checksum_algorithm = checksum_algorithm.as_ref();
let checksum_algorithm = checksum_algorithm.map(|algorithm| algorithm.as_str());
let checksum_algorithm = match checksum_algorithm {
Some(algo) => Some(
algo.parse::<aws_smithy_checksums::ChecksumAlgorithm>()
.map_err(aws_smithy_http::operation::error::BuildError::other)?,
),
None => None,
};
if let Some(checksum_algorithm) = checksum_algorithm {
crate::http_body_checksum::add_checksum_calculation_to_request(
&mut req,
properties,
checksum_algorithm,
)?;
}
Result::<_, aws_smithy_http::operation::error::BuildError>::Ok(req)
})?;
let mut signing_config = aws_sig_auth::signer::OperationSigningConfig::default_config();
signing_config.signing_options.content_sha256_header = true;
signing_config.signing_options.double_uri_encode = false;
signing_config.signing_options.normalize_uri_path = false;
request.properties_mut().insert(signing_config);
request
.properties_mut()
.insert(aws_types::SigningService::from_static(
_config.signing_service(),
));
if let Some(region) = &_config.region {
request
.properties_mut()
.insert(aws_types::region::SigningRegion::from(region.clone()));
}
let endpoint_params = aws_endpoint::Params::new(_config.region.clone());
request
.properties_mut()
.insert::<aws_smithy_http::endpoint::Result>(
_config.endpoint_resolver.resolve_endpoint(&endpoint_params),
);
if let Some(region) = &_config.region {
request.properties_mut().insert(region.clone());
}
aws_http::auth::set_provider(
&mut request.properties_mut(),
_config.credentials_provider.clone(),
);
let op =
aws_smithy_http::operation::Operation::new(request, crate::operation::PutObject::new())
.with_metadata(aws_smithy_http::operation::Metadata::new("PutObject", "s3"));
let op = op.with_retry_classifier(aws_http::retry::AwsResponseRetryClassifier::new());
Ok(op)
}
sourcepub fn checksum_crc32(&self) -> Option<&str>
pub fn checksum_crc32(&self) -> Option<&str>
This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32 checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.
sourcepub fn checksum_crc32_c(&self) -> Option<&str>
pub fn checksum_crc32_c(&self) -> Option<&str>
This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 32-bit CRC32C checksum of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.
sourcepub fn checksum_sha1(&self) -> Option<&str>
pub fn checksum_sha1(&self) -> Option<&str>
This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 160-bit SHA-1 digest of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.
sourcepub fn checksum_sha256(&self) -> Option<&str>
pub fn checksum_sha256(&self) -> Option<&str>
This header can be used as a data integrity check to verify that the data received is the same data that was originally sent. This header specifies the base64-encoded, 256-bit SHA-256 digest of the object. For more information, see Checking object integrity in the Amazon S3 User Guide.
sourcepub fn expires(&self) -> Option<&DateTime>
pub fn expires(&self) -> Option<&DateTime>
The date and time at which the object is no longer cacheable. For more information, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21.
sourcepub fn grant_full_control(&self) -> Option<&str>
pub fn grant_full_control(&self) -> Option<&str>
Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.
This action is not supported by Amazon S3 on Outposts.
sourcepub fn grant_read(&self) -> Option<&str>
pub fn grant_read(&self) -> Option<&str>
Allows grantee to read the object data and its metadata.
This action is not supported by Amazon S3 on Outposts.
sourcepub fn grant_read_acp(&self) -> Option<&str>
pub fn grant_read_acp(&self) -> Option<&str>
Allows grantee to read the object ACL.
This action is not supported by Amazon S3 on Outposts.
sourcepub fn grant_write_acp(&self) -> Option<&str>
pub fn grant_write_acp(&self) -> Option<&str>
Allows grantee to write the ACL for the applicable object.
This action is not supported by Amazon S3 on Outposts.
sourcepub fn metadata(&self) -> Option<&HashMap<String, String>>
pub fn metadata(&self) -> Option<&HashMap<String, String>>
A map of metadata to store with the object in S3.
sourcepub fn server_side_encryption(&self) -> Option<&ServerSideEncryption>
pub fn server_side_encryption(&self) -> Option<&ServerSideEncryption>
The server-side encryption algorithm used when storing this object in Amazon S3 (for example, AES256, aws:kms).
sourcepub fn storage_class(&self) -> Option<&StorageClass>
pub fn storage_class(&self) -> Option<&StorageClass>
By default, Amazon S3 uses the STANDARD Storage Class to store newly created objects. The STANDARD storage class provides high durability and high availability. Depending on performance needs, you can specify a different Storage Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For more information, see Storage Classes in the Amazon S3 User Guide.
sourcepub fn website_redirect_location(&self) -> Option<&str>
pub fn website_redirect_location(&self) -> Option<&str>
If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Amazon S3 stores the value of this header in the object metadata. For information about object metadata, see Object Key and Metadata.
In the following example, the request header sets the redirect to an object (anotherPage.html) in the same bucket:
x-amz-website-redirect-location: /anotherPage.html
In the following example, the request header sets the object redirect to another website:
x-amz-website-redirect-location: http://www.example.com/
For more information about website hosting in Amazon S3, see Hosting Websites on Amazon S3 and How to Configure Website Page Redirects.
sourcepub fn sse_customer_algorithm(&self) -> Option<&str>
pub fn sse_customer_algorithm(&self) -> Option<&str>
Specifies the algorithm to use to when encrypting the object (for example, AES256).
sourcepub fn sse_customer_key(&self) -> Option<&str>
pub fn sse_customer_key(&self) -> Option<&str>
Specifies the customer-provided encryption key for Amazon S3 to use in encrypting data. This value is used to store the object and then it is discarded; Amazon S3 does not store the encryption key. The key must be appropriate for use with the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
header.
sourcepub fn sse_customer_key_md5(&self) -> Option<&str>
pub fn sse_customer_key_md5(&self) -> Option<&str>
Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321. Amazon S3 uses this header for a message integrity check to ensure that the encryption key was transmitted without error.
sourcepub fn ssekms_key_id(&self) -> Option<&str>
pub fn ssekms_key_id(&self) -> Option<&str>
If x-amz-server-side-encryption
is present and has the value of aws:kms
, this header specifies the ID of the Amazon Web Services Key Management Service (Amazon Web Services KMS) symmetrical customer managed key that was used for the object. If you specify x-amz-server-side-encryption:aws:kms
, but do not provide x-amz-server-side-encryption-aws-kms-key-id
, Amazon S3 uses the Amazon Web Services managed key to protect the data. If the KMS key does not exist in the same account issuing the command, you must use the full ARN and not just the ID.
sourcepub fn ssekms_encryption_context(&self) -> Option<&str>
pub fn ssekms_encryption_context(&self) -> Option<&str>
Specifies the Amazon Web Services KMS Encryption Context to use for object encryption. The value of this header is a base64-encoded UTF-8 string holding JSON with the encryption context key-value pairs.
sourcepub fn bucket_key_enabled(&self) -> bool
pub fn bucket_key_enabled(&self) -> bool
Specifies whether Amazon S3 should use an S3 Bucket Key for object encryption with server-side encryption using AWS KMS (SSE-KMS). Setting this header to true
causes Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
Specifying this header with a PUT action doesn’t affect bucket-level settings for S3 Bucket Key.
sourcepub fn request_payer(&self) -> Option<&RequestPayer>
pub fn request_payer(&self) -> Option<&RequestPayer>
Confirms that the requester knows that they will be charged for the request. Bucket owners need not specify this parameter in their requests. For information about downloading objects from Requester Pays buckets, see Downloading Objects in Requester Pays Buckets in the Amazon S3 User Guide.
sourcepub fn tagging(&self) -> Option<&str>
pub fn tagging(&self) -> Option<&str>
The tag-set for the object. The tag-set must be encoded as URL Query parameters. (For example, "Key1=Value1")
sourcepub fn object_lock_mode(&self) -> Option<&ObjectLockMode>
pub fn object_lock_mode(&self) -> Option<&ObjectLockMode>
The Object Lock mode that you want to apply to this object.
sourcepub fn object_lock_retain_until_date(&self) -> Option<&DateTime>
pub fn object_lock_retain_until_date(&self) -> Option<&DateTime>
The date and time when you want this object's Object Lock to expire. Must be formatted as a timestamp parameter.
sourcepub fn object_lock_legal_hold_status(
&self
) -> Option<&ObjectLockLegalHoldStatus>
pub fn object_lock_legal_hold_status(
&self
) -> Option<&ObjectLockLegalHoldStatus>
Specifies whether a legal hold will be applied to this object. For more information about S3 Object Lock, see Object Lock.
sourcepub fn expected_bucket_owner(&self) -> Option<&str>
pub fn expected_bucket_owner(&self) -> Option<&str>
The account ID of the expected bucket owner. If the bucket is owned by a different account, the request fails with the HTTP status code 403 Forbidden
(access denied).