Rename Object
| s3_rename_object | R Documentation |
Renames an existing object in a directory bucket that uses the S3 Express One Zone storage class¶
Description¶
Renames an existing object in a directory bucket that uses the S3
Express One Zone storage class. You can use rename_object by
specifying an existing object’s name as the source and the new name of
the object as the destination within the same directory bucket.
rename_object is only supported for objects stored in the S3 Express
One Zone storage class.
To prevent overwriting an object, you can use the If-None-Match
conditional header.
- If-None-Match - Renames the object only if an object with the
specified name does not already exist in the directory bucket. If you
don't want to overwrite an existing object, you can add the
If-None-Matchconditional header with the value‘*’in therename_objectrequest. Amazon S3 then returns a412 Precondition Failederror if the object with the specified name already exists. For more information, see RFC 7232.
Permissions¶
To grant access to the rename_object operation on a directory bucket,
we recommend that you use the create_session operation for
session-based authorization. Specifically, you grant the
s3express:CreateSession permission to the directory bucket in a bucket
policy or an IAM identity-based policy. Then, you make the
create_session API call on the directory bucket to obtain a session
token. With the session token in your request header, you can make API
requests to this operation. After the session token expires, you make
another create_session API call to generate a new session token for
use. The Amazon Web Services CLI and SDKs will create and manage your
session including refreshing the session token automatically to avoid
service interruptions when a session expires. In your bucket policy, you
can specify the s3express:SessionMode condition key to control who can
create a ReadWrite or ReadOnly session. A ReadWrite session is
required for executing all the Zonal endpoint API operations, including
rename_object. For more information about authorization, see
create_session
. To learn more about Zonal endpoint API operations, see Authorizing
Zonal endpoint API operations with
CreateSession
in the Amazon S3 User Guide.
HTTP Host header syntax¶
Directory buckets - The HTTP Host header syntax is
Bucket-name.s3express-zone-id.region-code.amazonaws.com.
You must URL encode any signed header values that contain spaces. For
example, if your header value is my file.txt, containing two spaces
after my, you must URL encode this value to my%20%20file.txt.
Usage¶
s3_rename_object(Bucket, Key, RenameSource, DestinationIfMatch,
DestinationIfNoneMatch, DestinationIfModifiedSince,
DestinationIfUnmodifiedSince, SourceIfMatch, SourceIfNoneMatch,
SourceIfModifiedSince, SourceIfUnmodifiedSince, ClientToken)
Arguments¶
Bucket |
[required] The bucket name of the directory bucket containing the object. You must use virtual-hosted-style requests in the format
|
Key |
[required] Key name of the object to rename. |
RenameSource |
[required] Specifies the source for the rename operation. The value must be URL encoded. |
DestinationIfMatch |
Renames the object only if the ETag (entity tag) value provided
during the operation matches the ETag of the object in S3. The
Expects the ETag value as a string. |
DestinationIfNoneMatch |
Renames the object only if the destination does not already exist
in the specified directory bucket. If the object does exist when you
send a request with Expects the |
DestinationIfModifiedSince |
Renames the object if the destination exists and if it has been modified since the specified time. |
DestinationIfUnmodifiedSince |
Renames the object if it hasn't been modified since the specified time. |
SourceIfMatch |
Renames the object if the source exists and if its entity tag (ETag) matches the specified ETag. |
SourceIfNoneMatch |
Renames the object if the source exists and if its entity tag
(ETag) is different than the specified ETag. If an asterisk
( |
SourceIfModifiedSince |
Renames the object if the source exists and if it has been modified since the specified time. |
SourceIfUnmodifiedSince |
Renames the object if the source exists and hasn't been modified since the specified time. |
ClientToken |
A unique string with a max of 64 ASCII characters in the ASCII range of 33 - 126.
|
Value¶
An empty list.
Request syntax¶
svc$rename_object(
Bucket = "string",
Key = "string",
RenameSource = "string",
DestinationIfMatch = "string",
DestinationIfNoneMatch = "string",
DestinationIfModifiedSince = as.POSIXct(
"2015-01-01"
),
DestinationIfUnmodifiedSince = as.POSIXct(
"2015-01-01"
),
SourceIfMatch = "string",
SourceIfNoneMatch = "string",
SourceIfModifiedSince = as.POSIXct(
"2015-01-01"
),
SourceIfUnmodifiedSince = as.POSIXct(
"2015-01-01"
),
ClientToken = "string"
)