Cloud Enterprise Object Storage REST API

Search (SHIFT+S)




Create Or Update Object

PUT /{object_name}

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.

URL Format

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.

Request Headers

Content optionalUsed to specify the number of bytes supplied by an append, update, or overwritten operation.
Range optionalSpecifies byte range with an object.
  1. To append use:bytes=-1-
  2. To update use:bytes=<start>-<end> for example, bytes=10-14
  3. To overwrite, use bytes=<start-position>-,for example:bytes=10-
x-amz-acl optionalUsed 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 optionalAllows grantee to read the object data and metadata
x-amz-grant-read-acp optionalAllows grantee to read the object ACL
x-amz-grant-write-acp optionalAllows grantee to write the ACL for the object
x-amz-grant-full-control optionalAllows grantee the READ, READ_ACP, and WRITE_ACP permissions on the object
x-emc-retention-period optionalApplying retention period in seconds, -1 denotes infinity
x-emc-retention-policy optionalApplying retention policy
If-None-Match optionalIf "If-None-match:*" is set, then put-if-absent semantics for the createObject
x-amz-copy-source optionalUsed 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 optionalUsed to specify the metadata directive to be used when copying an object either to itself or a different object, valid values include,
  1. COPY - This metadata directive value will copy over all metadata information from the source object to the destination object. It is only allowed if the object is not being copied to itself.
  2. MERGE - This metadata directive value will copy over all metadata information from the source object to the destination object including any new metadata from the request.
  3. REPLACE - This metadata directive value will replace all metadata information from the source object with the any new metadata from the request.
x-emc-multipart-copy optionalIndicates a copy-range API request
x-emc-copy-mode optionalIs 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.

Prerequisites

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


Request Payload

No Request Payload


Response Headers

x-amz-version-id optionalVersion of the object
x-emc-content-md5 optionalMD5 checksum of data changed on a Range update
x-amz-expiration optionalIf 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 optionalOn object update or overwrite, this shows the size of the object prior to being modified

Response Body

Response indicating Success or Failure for this operation.