Creates an object or performs an update, append or overwrite operation for a specified byte range within an object. Byte range updates, appends, and overwrites are ECS extensions to the S3 API.
For object creation, if there is already an existing object with the same name, the object is overwritten.
The object ACL can be set with the object creation request, but it is optional. When set, the ACL can be specified with a canned ACL using the x-amz-acl request header, or specified explicitly using the x-amz-grant-read, x-amz-grant-write, x-amz-grant-read-acp, x-amz-grant-write-acp, x-amz-grant-full-control headers. These headers map to the set of permissions S3 supports in an ACL. The object ACL can be set with either a canned ACL or explicitly, if both are specified the canned ACL is ignored.
Host Style: http://bucketname.ns1.emc.com/{object_name}
Path Style: http://ns1.emc.com/bucketname/{object_name}
Alternatively, both styles can specify the namespace using the x-emc-namespace header.
Content | optional | Used to specify the number of bytes supplied by an append, update, or overwritten operation. |
Range | optional | Specifies byte range with an object.
|
x-amz-acl | optional | Used to specify the canned ACL for the object you are creating. Valid values: private, public-read, public-read-write, authenticated-read, bucket-owner-read, bucket-owner-full-control |
x-amz-grant-read | optional | Allows grantee to read the object data and metadata |
x-amz-grant-read-acp | optional | Allows grantee to read the object ACL |
x-amz-grant-write-acp | optional | Allows grantee to write the ACL for the object |
x-amz-grant-full-control | optional | Allows grantee the READ, READ_ACP, and WRITE_ACP permissions on the object |
x-emc-retention-period | optional | Applying retention period in seconds, -1 denotes infinity |
x-emc-retention-policy | optional | Applying retention policy |
If-None-Match | optional | If "If-None-match:*" is set, then put-if-absent semantics for the createObject |
x-amz-copy-source | optional | Used to specify the name of the source bucket and key name of the source object, separated by a slash. Default copy mode is shallow and only specific scenario where the shallow copy cannot be performed will be switch over to deep-mode, such as in the case of TSO, different encryption settings for bucket, etc. |
x-amz-metadata-directive | optional | Used to specify the metadata directive to be used when copying an object either to itself or a different object, valid values include,
|
x-emc-multipart-copy | optional | Indicates a copy-range API request |
x-emc-copy-mode | optional | Is a ECS extension header for x-emc-multipart-copy API, which is another ECS extension developed specifically for DD (Data Domain). Multi-part copy API by default operates in deep copy mode while regular S3 object copy API by default is in shallow mode. |
The following conditions must be met in order to call this operation.
User should have WRITE permission on the bucket
BaseUrl used in a host-style request URL should be pre-configured using the ECS Management API or the ECS Portal (for example, emc.com in the URL: bucketname.ns1.emc.com).
Namespace and bucket corresponding to this object should exist
No Request Payload
x-amz-version-id | optional | Version of the object |
x-emc-content-md5 | optional | MD5 checksum of data changed on a Range update |
x-amz-expiration | optional | If the object expiration is configured, the response includes this header. It includes the expiry-date and rule-id key-value pairs providing object expiration information. The value of the rule-id is URL encoded. |
x-emc-previous-object-size | optional | On object update or overwrite, this shows the size of the object prior to being modified |
Response indicating Success or Failure for this operation.