CDN77 Object Storage API

API endpoint format - https://{region}.cdn77-storage.com

Common request headers

NameDescription

Authorization

The authorization details for the request in either the AWS Signature Version 4 or AWS Signature Version 2 format

Content-Length

The length in bytes of the request body. Required with PUT requests containing an XML body.

Content-Type

The MIME type of the request body (e.g. text/plain).

Host

The target host for the request {region}.cdn77-storage.com or {bucket}.{region}.cdn77-storage.com

x-amz-content-sha256

The SHA256 hash of the request payload. Required when using AWS Signature Version 4 for authentication.

x-amz-date

The current date and time date in Coordinated Universal Time (UTC) using the ISO 8601 format: %Y%m%dT%H%M%SZ (e.g. 20230324T142155Z)

Bucket Operations

List Bucket

Returns a list of buckets created by the user making the request. It returns only buckets created by an authenticated user. You cannot make an anonymous request.

Syntax

GET / HTTP/1.1 Host: {region}.cdn77-storage.com


Response Entities

NameDescription

Buckets

string

Container for list of buckets.

Bucket

Container for bucket information.

Name

string

Bucket name.

CreationDate

UTC time when the bucket was created.

Owner

A container for the bucket owner's ID and DisplayName.

ID

string

The bucket owner's ID.

DisplayName

string

The bucket owner's display name.

Example

GET / HTTP/1.1
Host: us-1.cdn77-storage.com
Authorization: AWS4-HMAC-SHA256 Credential=THS6EFN26FQNT309VG1/20230324/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=4fc9ee550b7b05a7209b3e41f439ed99a85b586ca0be1c29c39694b57114d383
X-Amz-Content-Sha256: e3b0c9afbf4c8996fb92427ae41e464944298fc1c14b934ca495991b7852b855
X-Amz-Date: 20230324T142155Z
HTTP/2 200
date: Thu, 30 Mar 2023 07:13:12 GMT
content-type: application/xml
vary: Accept-Encoding
x-amz-request-id: tx000003473a1aad527f587-0064253688-1f840d3-nyc
server: CDN77-Fast
x-77-nzt: AZySOhayJmMA
x-77-nzt-ray: ffffffff5b02bfc688362564ac52212d

<?xml version="1.0" encoding="UTF-8"?>
    <Owner>
        <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
        <DisplayName>John Smith</DisplayName>
    </Owner>
    <Buckets>
        <Bucket>
            <Name>mypictures</Name>
            <CreationDate>2023-03-14T14:03:08.831Z</CreationDate>
        </Bucket>
        <Bucket>
            <Name>videos</Name>
            <CreationDate>2023-03-29T06:42:58.603Z</CreationDate>
        </Bucket>
    </Buckets>
</ListAllMyBucketsResult>

Create a Bucket

When you create a bucket you become the bucket owner. You cannot make an anonymous request.

PUT / HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Parameters:

Description

x-amz-acl

private, public-read, public-read-write, authenticated-read

x-amz-bucket-object-lock-enabled

true, false

Request Entities:

Description

CreateBucketConfiguration

A container for the bucket configuration.

LocationConstraint

string

Name of the cluster region.

HTTP Response

If the bucket name is unique, within constraints and unused, the operation will succeed.

If a bucket with the same name already exists and the user is the bucket owner, the operation will succeed.

If the bucket name is already in use, the operation will fail.

HTTP codeDescription

409

BucketAlreadyExists

Example:

<CreateBucketConfiguration>
  <LocationConstraint>us-1</LocationConstraint>
</CreateBucketConfiguration>

Delete Bucket

Deletes a bucket. You can reuse bucket names following successful bucket removal.

DELETE / HTTP/1.1
Host: Host: {bucket}.{region}.cdn77-storage.com

HTTP Response:

HTTP CodeDescription

204

No content - bucket removed

409

BucketNotEmpty - Please remove all objects before removing.

Get Bucket

Returns a list of bucket objects.

GET /?max-keys=25 HTTP/1.1
Host: Host: {bucket}.{region}.cdn77-storage.com

Parameters:

Description

prefix

string

Only returns objects that contain the specified prefix.

delimiter

string

The delimiter between the prefix and the rest of the object name.

marker

string

A beginning index for the list of objects returned.

max-keys

integer

The maximum number of keys to return. Default is 1000.

allow-unordered

boolean

Non-standard extension. Allows results to be returned unordered. Cannot be used with delimiter.

HTTP Response:

HTTP CodeDescription

200

OK - Bucket retrieved

404

NoSuchBucket - No bucket by that name under your account.

Bucket Response Entities:

Description

ListBucketResult

The container for the list of objects.

Name

string

The name of the bucket whose contents will be returned.

Prefix

string

A prefix for the object keys.

Marker

string

A beginning index for the list of objects returned.

MaxKeys

integer

The maximum number of keys returned.

Delimiter

string

If set, objects with the same prefix will appear in the CommonPrefixes list.

IsTruncated

boolean

If true, only a subset of the bucket's contents were returned.

CommonPrefixes

If multiple objects contain the same prefix, they will appear in this container.

Object Response Entities

The ListBucketResult contains objects, where each object is within a Contents container.

Description

Contents

A container for the object.

Key

string

The object's key.

LastModified

The object's last-modified date/time.

ETag

string

An MD-5 hash of the object. (entity tag)

Size

integer

The object's size.

StorageClass

string

Should always return STANDARD.

Type

string

Appendable or Normal.

Example Response

<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult>
    <Name>mypictures</Name>
    <Prefix></Prefix>
    <MaxKeys>25</MaxKeys>
    <IsTruncated>false</IsTruncated>
    <Contents>
        <Key>Flowers/</Key>
        <LastModified>2023-03-20T14:05:47.832Z</LastModified>
        <ETag>&quot;d41d8cd98f00b204e9800998ecf8427e&quot;</ETag>
        <Size>0</Size>
        <StorageClass>STANDARD</StorageClass>
        <Owner>
            <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
            <DisplayName>John Smith</DisplayName>
        </Owner>
        <Type>Normal</Type>
    </Contents>
    <Contents>
        <Key>Flowers/cover.jpg</Key>
        <LastModified>2023-03-20T14:07:26.605Z</LastModified>
        <ETag>&quot;a5a35333ad675a15fe03b9b939e55975&quot;</ETag>
        <Size>58292</Size>
        <StorageClass>STANDARD</StorageClass>
        <Owner>
            <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
            <DisplayName>John Smith</DisplayName>
        </Owner>
        <Type>Normal</Type>
    </Contents>
    <Contents>
        <Key>wow2.png</Key>
        <LastModified>2023-03-21T10:52:44.237Z</LastModified>
        <ETag>&quot;8b022b20c5dda80dbea3e23b3bd7c61c&quot;</ETag>
        <Size>889608</Size>
        <StorageClass>STANDARD</StorageClass>
        <Owner>
            <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
            <DisplayName>John Smith</DisplayName>
        </Owner>
        <Type>Normal</Type>
    </Contents>
    <Marker></Marker>
</ListBucketResult>

Get bucket location

Retrieves the bucket's region. The user must be the bucket owner or have the s3:GetBucketLocation policy.

GET /?location HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Response Entities

Description

LocationConstraint

string

The region where bucket resides, empty string for default region.

Example response

<?xml version="1.0" encoding="UTF-8"?>
<LocationConstraint>us-1</LocationConstraint>

Get Bucket ACL

Retrieves the bucket access control list. The user must be the bucket owner or to have been granted READ_ACP permission on the bucket.

GET /?acl HTTP/1.1
Host: Host: {bucket}.{region}.cdn77-storage.com

Response Entities

Description

AccessControlPolicy

A container for the response.

AccessControlList

A container for the ACL information.

Owner

A container for the bucket owner's ID and DisplayName.

ID

string

The bucket owner's ID.

DisplayName

string

The bucket owner's display name.

Grant

A container for Grantee and Permission.

Grantee

A container for the DisplayName and ID of the user receiving a grant of permission.

Permission

string

The permission given to the Grantee bucket.

Example Response

<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy>
    <Owner>
        <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
        <DisplayName>John Smith</DisplayName>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
                <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
                <DisplayName>John Smith</DisplayName>
            </Grantee>
            <Permission>FULL_CONTROL</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>

PUT Bucket ACL

Sets access control to an existing bucket. The user must be the bucket owner or to have been granted WRITE_ACP permission on the bucket.

PUT /?acl HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Request Entities

Description

AccessControlPolicy

A container for the request.

AccessControlList

A container for the ACL information.

Owner

A container for the bucket owner's ID and DisplayName.

ID

string

The bucket owner's ID.

DisplayName

string

The bucket owner's display name.

Grant

A container for Grantee and Permission.

Grantee

A container for the DisplayName and ID of the user receiving a grant of permission.

Permission

string

The permission given to the Grantee bucket.

Example

<AccessControlPolicy>
    <Owner>
        <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
                <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
            </Grantee>
            <Permission>FULL_CONTROL</Permission>
        </Grant>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
                <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
            </Grantee>
            <Permission>READ</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>

Get Bucket CORS

Retrieves the bucket Cross-Origin Resource Sharing (CORS) configuration. The user must be the bucket owner or to have been granted s3:GetBucketCORS permission on the bucket.

GET /?cors HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Response Entries

Description

CORSConfiguration

A container for the response.

CORSRule

A container for the CORS information

AllowedHeader

string

Headers that are specified in the Access-Control-Request-Headers header

AllowedMethod

string

An HTTP method that you allow the origin. GET, PUT, HEAD, POST, and DELETE

AllowedOrigin

string

One or more origins you want customers to be able to access the bucket from.

Example Response

<CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>http://example.com</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
    </CORSRule>
</CORSConfiguration>

Put Bucket CORS

Sets Cross-Origin Resource Sharing (CORS) configuration on the bucket. The user must be the bucket owner or to have been granted s3:PutBucketCORS permission on the bucket.

PUT /?cors HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Request Entries

Description

CORSConfiguration

A container for the request.

CORSRule

A container for the CORS information

AllowedHeader

string

Headers that are specified in the Access-Control-Request-Headers header

AllowedMethod

string

An HTTP method that you allow the origin. GET, PUT, HEAD, POST, and DELETE

AllowedOrigin

string

One or more origins you want customers to be able to access the bucket from.

Example

<CORSConfiguration>
    <CORSRule>
        <AllowedOrigin>http://example.com</AllowedOrigin>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
<CORSConfiguration>

Get Bucket Website

Retrieves the bucket website configuration. The user must be the bucket owner or to have been granted s3:GetBucketWebsite permission on the bucket.

GET /?website HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Response Entries

Description

WebsiteConfiguration

A container for the response.

IndexDocument

A container for the suffix.

Suffix

string

Specifies the index document suffix.

ErrorDocument

A container for the key.

Key

string

Object key name of the error document that will be used for 4XX errors coming from the bucket.

RoutingRules

Container for Condition and Redirect.

Condition

Used for describing the condition that needs to be met for the redirect to apply.

HttpErrorCodeReturnedEquals

string

HTTP error code when the redirect is applied.

KeyPrefixEquals

string

The object key name prefix when the redirect is applied.

Redirect

Container for redirect information.

HostName

string

The host to redirect.

HttpRedirectCode

string

The HTTP code to use on redirect.

Protocol

string

Protocol to use for the redirects. HTTP or HTTPS

ReplaceKeyPrefixWith

string

The object key prefix to redirect to.

ReplaceKeyWith

string

The object key to use on redirect.

Example Response

<?xml version="1.0" encoding="UTF-8"?>
<WebsiteConfiguration>
<IndexDocument>
    <Suffix>index.html</Suffix>
</IndexDocument>
</WebsiteConfiguration>

Put Bucket Website

Sets the bucket website configuration. The user must be the bucket owner or to have been granted s3:PutBucketWebsite permission on the bucket.

PUT /?website HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Request Entries

Description

WebsiteConfiguration

A container for the request.

IndexDocument

A container for the suffix.

Suffix

string

Specifies the index document suffix.

ErrorDocument

A container for the key.

Key

string

Object key name of the error document that will be used for 4XX errors coming from the bucket.

RoutingRules

Container for Condition and Redirect.

Condition

Used for describing the condition that needs to be met for the redirect to apply

HttpErrorCodeReturnedEquals

string

HTTP error code when the redirect is applied.

KeyPrefixEquals

string

The object key name prefix when the redirect is applied.

Redirect

Container for redirect information.

HostName

string

The host to redirect.

HttpRedirectCode

string

The HTTP code to use on redirect.

Protocol

string

Protocol to use for the redirects. HTTP or HTTPS.

ReplaceKeyPrefixWith

string

The object key prefix to redirect to.

ReplaceKeyWith

string

The object key to use on redirect.

Example

<WebsiteConfiguration xmlns='http://s3.amazonaws.com/doc/2006-03-01/'>
    <IndexDocument>
        <Suffix>index.html</Suffix>
    </IndexDocument>
    <ErrorDocument>
        <Key>error.html</Key>
    </ErrorDocument>
    <RoutingRules>
        <RoutingRule>
            <Condition>
                <KeyPrefixEquals>flowers/</KeyPrefixEquals>
            </Condition>
            <Redirect>
                <ReplaceKeyPrefixWith>img/flowers/</ReplaceKeyPrefixWith>
            </Redirect>
        </RoutingRule>
    </RoutingRules>
</WebsiteConfiguration>

Get Bucket Policy

Returns the policy of the specified bucket. The user must be the bucket owner or to have been granted s3:GetBucketPolicy permission on the bucket.

GET /?policy HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Example Response in JSON format

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": ["arn:aws:iam:::user/cdn77-mypictures"]
      },
      "Action": "s3:GetObject",
      "Resource": ["arn:aws:s3:::mypictures/*"]
    }
  ]
}

Put Bucket Policy

Sets the bucket policy of the specified bucket. The user must be the bucket owner or to have been granted s3:PutBucketPolicy permission on the bucket.

PUT /?policy HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Limitations

At the moment we support only the following actions to be set on the bucket:

s3:AbortMultipartUpload
s3:CreateBucket
s3:DeleteBucketPolicy
s3:DeleteBucket
s3:DeleteBucketWebsite
s3:DeleteObject
s3:DeleteObjectVersion
s3:GetBucketAcl
s3:GetBucketCORS
s3:GetBucketLocation
s3:GetBucketPolicy
s3:GetBucketTagging
s3:GetBucketVersioning
s3:GetBucketWebsite
s3:GetLifecycleConfiguration
s3:GetObjectAcl
s3:GetObject
s3:GetObjectVersionAcl
s3:GetObjectVersion
s3:IPAddress
s3:NotIpAddress
s3:ListAllMyBuckets
s3:ListBucketMultipartUploads
s3:ListBucket
s3:ListBucketVersions
s3:ListMultipartUploadParts
s3:PutBucketAcl
s3:PutBucketCORS
s3:PutBucketPolicy
s3:PutBucketWebsite
s3:PutLifecycleConfiguration
s3:PutObjectAcl
s3:PutObject
s3:PutObjectVersionAcl
s3:RestoreObject

Get Bucket Lifecycle

Returns information about the lifecycle rules configured on the bucket. The user needs to be the bucket owner or to have been granted s3:GetLifecycleConfiguration permission on the bucket.

GET /?lifecycle HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com
Description

Rule

A container holding elements with information about a singe lifecycle rule.

ID

string

A unique string identifying the rule. It may contain up to 255 characters including spaces.

Status

string

A string that specifies whether or not the lifecycle rule will be acted upon. The only valid values are Enabled or Disabled.

Prefix

string

A string specifying the objects to which the rule will be applied. When provided, only objects whose keys begin with the prefix will be acted upon. If empty or not present, all object in the bucket will be affected.

Expiration

When present, matching objects are expired and automatically deleted. This container will specify either a Date or Days element.

Days

integer

An integer specifying the number of days after an object’s creation until the rule takes effect.

Date

A date in ISO 8601 format specifying the day that the rule takes effect. The action will be run at midnight UTC.

AbortIncompleteMultipartUpload

When present, incomplete multipart uploads of matching objects will be removed. This container will specify a DaysAfterInitiation element.

DaysAfterInitiation

integer

An integer specifying the number of days after an incomplete multipart upload was initiated until the rule takes effect.

Example Response

<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Rule>
    <ID>Expire old project versions</ID>
    <Prefix>project/</Prefix>
    <Status>Enabled</Status>
    <Expiration>
      <Days>30</Days>
    </Expiration>
  </Rule>
  <Rule>
    <ID>Remove uncompleted uploads</ID>
    <Status>Enabled</Status>
    <Prefix/>
    <AbortIncompleteMultipartUpload>
      <DaysAfterInitiation>1</DaysAfterInitiation>
    </AbortIncompleteMultipartUpload>
  </Rule>
</LifecycleConfiguration>

Put Bucket Lifecycle

Gives the ability to set the lifecycle configuration on the bucket. The user needs to be the bucket owner or to have been granted s3:PutLifecycleConfiguration permission on the bucket.

PUT /?lifecycle HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Request Entries

Description

Rule

A container holding elements with information about a singe lifecycle rule.

ID

string

A unique string identifying the rule. It may contain up to 255 characters including spaces.

Status

string

A string that specifies whether or not the lifecycle rule will be acted upon. The only valid values are Enabled or Disabled.

Prefix

string

A string specifying the objects to which the rule will be applied. When provided, only objects whose keys begin with the prefix will be acted upon. If empty or not present, all object in the bucket will be affected.

Expiration

When present, matching objects are expired and automatically deleted. This container will specify either a Date or Days element.

Days

integer

An integer specifying the number of days after an object’s creation until the rule takes effect.

Date

A date in ISO 8601 format specifying the day that the rule takes effect. The action will be run at midnight UTC.

AbortIncompleteMultipartUpload

When present, incomplete multipart uploads of matching objects will be removed. This container will specify a DaysAfterInitiation element.

DaysAfterInitiation

integer

An integer specifying the number of days after an incomplete multipart upload was initiated until the rule takes effect.

Example response

<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Rule>
    <ID>Expire old project versions</ID>
    <Prefix>project/</Prefix>
    <Status>Enabled</Status>
    <Expiration>
      <Days>30</Days>
    </Expiration>
  </Rule>

  <Rule>
    <ID>Remove uncompleted uploads</ID>
    <Status>Enabled</Status>
    <Prefix/>
    <AbortIncompleteMultipartUpload>
      <DaysAfterInitiation>1</DaysAfterInitiation>
    </AbortIncompleteMultipartUpload>
  </Rule>
</LifecycleConfiguration>

Put Object

Adds an object to a bucket. You must have write permissions on the bucket to perform this operation.

PUT /{object} HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Request Headers

Description

content-md5

string

A base64 encoded MD-5 hash of the message.

content-type

Any standard MIME type. Default: binary/octet-stream

x-amz-meta-<...>

string

User metadata. Stored with the object.

x-amz-acl

private, public-read, public-read-write, authenticated-read

Copy Object

To copy an object, use PUT and specify a destination bucket and the object name.

PUT /{dest-bucket}/{dest-object} HTTP/1.1
x-amz-copy-source: {source-bucket}/{source-object}
Host: {region}.cdn77-storage.com

Request Headers

Description

x-amz-copy-source

required

The source bucket name + object name. Format: {bucket}/{obj}

x-amz-acl

A canned ACL - private, public-read, public-read-write, authenticated-read

x-amz-copy-if-modified-since

Copies only if modified since the set timestamp.

x-amz-copy-if-unmodified-since

Copies only if unmodified since the set timestamp.

x-amz-copy-if-match

Copies only if object ETag matches set ETag.

x-amz-copy-if-none-match

Copies only if object ETag doesn't match.

Response Entities

Description

CopyObjectResult

A container for the response elements.

LastModified

The last modified date of the source object.

Etag

string

The ETag of the new object.

Remove Object

Removes an object. Requires WRITE permission set on the containing bucket.

DELETE /{object} HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Get Object

Retrieves an object from a bucket.

GET /{object} HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Request Headers

Description

range

The range of the object to retrieve. Range: bytes=beginbyte-endbyte

if-modified-since

Gets only if modified since the set timestamp.

if-unmodified-since

Gets only if not modified since the set timestamp.

if-match

Gets only if object ETag matches ETag.

if-none-match

Gets only if object ETag matches ETag.

Response Headers

Description

Content-Range

Data range, will only be returned if the range header field was specified in the request

Get Object Info

Returns information about object. This request will return the same header information as with the Get Object request, but will include the metadata only, not the object data payload.

HEAD /{object} HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Request Headers

Description

range

The range of the object to retrieve. Range: bytes=beginbyte-endbyte

if-modified-since

Gets only if modified since the set timestamp.

if-unmodified-since

Gets only if not modified since the set timestamp.

if-match

Gets only if object ETag matches ETag.

if-none-match

Gets only if object ETag matches ETag.

Example response

HTTP/2 200
date: Thu, 30 Mar 2023 09:34:26 GMT
content-type: image/jpeg
content-length: 165457
last-modified: Wed, 29 Mar 2023 06:50:19 GMT
x-rgw-object-type: Normal
etag: "4b063c1aba9cbe12447dccbfc2c78436"
x-amz-storage-class: STANDARD
x-amz-request-id: tx000007829dd44a8560872-00642557a2-1f840a2-nyc
server: CDN77-Fast
x-77-nzt: AZySOhathUoA
x-77-nzt-ray: ffffffff5602ebc6a25725643406662c
accept-ranges: bytes

Get Object ACL

GET /{object}?acl HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Response Entities

Description

AccessControlPolicy

A container for the response.

AccessControlList

A container for the ACL information.

Owner

A container for the object owner's ID and DisplayName.

ID

string

The object owner's ID.

DisplayName

string

The object owner's display name.

Grant

A container for Grantee and Permission.

Grantee

A container for the DisplayName and ID of the user receiving a grant of permission.

Permission

string

The permission given to the Grantee object.

<AccessControlPolicy>
    <Owner>
        <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
                <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
            </Grantee>
            <Permission>FULL_CONTROL</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>

Set Object ACL

PUT /{object}?acl
Host: {bucket}.{region}.cdn77-storage.com

Request Entities

Description

AccessControlPolicy

A container for the request.

AccessControlList

A container for the ACL information.

Owner

A container for the object owner's ID and DisplayName.

ID

string

The object owner's ID.

DisplayName

string

The object owner's display name.

Grant

A container for Grantee and Permission.

Grantee

A container for the DisplayName and ID of the user receiving a grant of permission.

Permission

string

The permission given to the Grantee object.

Example

<AccessControlPolicy>
    <Owner>
        <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
                <ID>946570e-8532-4f3b-af51-9ak7f650d6c2</ID>
            </Grantee>
            <Permission>FULL_CONTROL</Permission>
        </Grant>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
                <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
            </Grantee>
            <Permission>READ</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>

Initiate Multipart Upload

Initiate a multipart upload process.

POST /{object}?uploads
Host: {bucket}.{region}.cdn77-storage.com
Description

Request Headers

string

A base64 encoded MD-5 hash of the message.

content-type

A standard MIME type. Default: binary/octet-stream

x-amz-meta-<...>

string

User metadata. Stored with the object.

x-amz-acl

A canned ACL. - private, public-read, public-read-write, authenticated-read

Response Entities

Description

InitiatedMultipartUploadsResult

A container for the results.

Bucket

string

The bucket that will receive the object contents.

Key

string

The key specified by the key request parameter (if any).

UploadId

string

The ID specified by the upload-id request parameter identifying the multipart upload (if any).

Example Response

<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult>
    <Bucket>mypictures</Bucket>
    <Key>new-object</Key>
    <UploadId>KQQVhX6q5fn94qGsMy8vPB8Hd5DQJ2oL2MrnYK6z</UploadId>
</InitiateMultipartUploadResult>

Multipart Upload Part

PUT /{object}?partNumber=&uploadId= HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

HTTP Response

The following HTTP response may be returned:

HTTP CodeDescription

404

NoSuchUpload - Specified upload-id does not match any initiated upload on this object

List Multipart Upload Parts

GET /{object}?uploadId=123 HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Response Entities

Description

ListPartsResult

A container for the results.

Bucket

string

The bucket that will receive the object contents.

Key

string

The key specified by the key request parameter (if any).

UploadId

string

The ID specified by the upload-id request parameter identifying the multipart upload (if any).

Initiator

Contains the ID and DisplayName of the user who initiated the upload.

ID

string

The initiator's ID.

DisplayName

string

The initiator's display name.

Owner

A container for the ID and DisplayName of the user who owns the uploaded object.

StorageClass

string

The method used to store the resulting object. STANDARD or REDUCED_REDUNDANCY

PartNumberMarker

string

The part marker to use in a subsequent request if IsTruncated is true. Precedes the list.

NextPartNumberMarker

string

The next part marker to use in a subsequent request if IsTruncated is true. The end of the list.

MaxParts

integer

The max parts allowed in the response as specified by the max-parts request parameter.

IsTruncated

boolean

If true, only a subset of the object's upload contents were returned.

Part

A container for LastModified, PartNumber, ETag and Size elements.

LastModified

Date and time at which the part was uploaded.

PartNumber

integer

The identification number of the part.

ETag

string

The part's entity tag.

Size

integer

The size of the uploaded part.

Complete Multipart Upload

Assembles uploaded parts and creates a new object, thereby completing a multipart upload.

POST /{object}?uploadId= HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com

Request Entities

Description

CompleteMultipartUpload

required

A container consisting of one or more parts.

Part

required

A container for the PartNumber and ETag.

PartNumber

requiredinteger

The identifier of the part.

ETag

requiredstring

The part's entity tag.

Response Entities

Description

CompleteMultipartUploadResult

A container for the response.

Location

URL - The resource identifier (path) of the new object.

Bucket

string

The name of the bucket that contains the new object.

Key

string

The object's key.

ETag

string

The entity tag of the new object.

Abort Multipart Upload

Aborts multipart upload process.

DELETE /{object}?uploadId= HTTP/1.1
Host: {bucket}.{region}.cdn77-storage.com