Understanding Object Storage object operations
DeleteObject
This operation allows you to remove an object from a bucket. Its behavior depends on the versioning configuration of the bucket:
-
If versioning is not enabled, the object is permanently deleted.
-
If versioning is enabled, the operation inserts a delete marker, which becomes the latest version of the object.
-
If versioning is suspended, the operation deletes the version with a null
versionID
(if any), then inserts a delete marker, which becomes the latest version of the object.
To delete an object that has a versionId
, you must add the versionId
to your request.
Sample request
DELETE /file.txt HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T080553Z
Authorization: authorization string
CLI command
aws s3api delete-object --bucket BucketName --key ObjectName
DeleteObjects
This operation allows you to delete multiple objects in a single request (up to 1,000).
Sample request
POST /?delete HTTP/1.1
Host: bucket.s3.fr-par.scw.cloud
Content-md5: IDCi4XsSBVpFGHtK7bEVag==
x-amz-date: 20220406T122013Z
Authorization: authorization string
<Delete xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Object>
<Key>object1.jpg</Key>
<VersionId>1554970190808057</VersionId>
</Object>
<Object>
<Key>object2.jpg</Key>
</Object>
</Delete>
Sample response
HTTP/1.1 200 OK
x-amz-id-2: tx4b4bd55643874b48b1e87-00624d857d
x-amz-request-id: tx4b4bd55643874b48b1e87-00624d857d
date: Wed, 06 Apr 2022 12:20:13 GMT
DeleteObjectTagging
This operation allows you to delete a tag set from a specified object.
Sample request
DELETE /Sampleobject?tagging HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud
Date: Wed, 13 Mar 2019 12:00:00 GMT
Authorization: authorization string
GetObject
This operation allows you to retrieve objects from Scaleway Object Storage.
Sample request
GET /Sample.txt HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T081116Z
Authorization: authorization string
Sample response
HTTP/1.1 200 OK
Date: Thu, 11 Apr 2019 08:11:16 GMT
x-amz-request-id: tx00000000000000279f46e-005963d003-1268c-ams1
Content-Type: text/plain
Content-Length: 14
Accept-Ranges: bytes
VersionId: 1554970190808057
Last-Modified: Thu, 11 Apr 2019 08:09:50 GMT
Etag: d41d8cd98f00b204e9800998ecf8427e
Connection: close
CLI command
aws s3api get-object --bucket BucketName --key dir/ObjectNameLocation ObjectName
GetObjectAcl
This operation allows you to return the access control list (ACL) of an object.
Sample request
GET /test.html?acl HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud.com
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T081550Z
Authorization: authorization string
Sample response
HTTP/1.1 200 OK
Date: Thu, 11 Apr 2019 08:15:51 GMT
x-amz-request-id: tx0e22d038acce4d35b0b07-005caef7b6
Content-Type: text/html; charset=UTF-8
Content-Length: 698
Connection: close
<?xml version='1.0' encoding='UTF-8'?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Owner>
<ID>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:a6a05c73-fa53-46a4-9ea1-e53b4f62552<ID>
<DisplayName>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</DisplayName>
</Owner>
<AccessControlList>
<Grant>
<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
<ID>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79< ID>
<DisplayName>04dcf44f-a6ca-4e69-a74c-f0c557d87d79:04dcf44f-a6ca-4e69-a74c-f0c557d87d79</DisplayName>
</Grantee>
<Permission>FULL_CONTROL</Permission>
</Grant>
</AccessControlList>
</AccessControlPolicy>
CLI command
aws s3api get-object-acl --bucket BucketName --key ObjectName
GetObjectLockConfiguration
This operation returns the object lock configuration.
Sample request
GET /lockedbucket?object-lock HTTP/1.1
Sample response
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ObjectLockEnabled>Enabled</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode>COMPLIANCE</Mode>
<Days>1000</Days>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
GetObjectTagging
This operation returns the tag set of the specified object.
Sample request
GET /Sample-object?tagging HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud
Date: Wed, 13 Mar 2019 12:00:00 GMT
Authorization: authorization string
Sample response
<?xml version="1.0" encoding="UTF-8"?>
<Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>Object Description</Key>
<Value>Company Presentation</Value>
</Tag>
<Tag>
<Key>Client</Key>
<Value>Scaleway</Value>
</Tag>
</TagSet>
</Tagging>
HeadObject
The HEAD operation retrieves metadata from an object without returning the object itself. This operation is useful if you're only interested in an object's metadata. To use HEAD, you must have READ access to the object.
Sample request
HEAD /myfile.txt HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Date: Thu, 11 Apr 2019 08:25:56 GMT
Authorization: authorization string
Sample response
HTTP/1.1 200 OK
x-amz-id-2: tx8cd3dff03f0f4be7aee3c-005caefb1e
x-amz-request-id: tx8cd3dff03f0f4be7aee3c-005caefb1e
Date: Thu, 11 Apr 2019 08:25:56 GMT
Last-Modified: Thu, 11 Apr 2019 08:15:33 GMT
ETag: d41d8cd98f00b204e9800998ecf8427e
Content-Length: 689
Content-Type: text/plain
Connection: close
CLI command
aws s3api head-object --bucket BucketName --key ObjectName
CreateMultipartUpload
Multipart uploads allow you to upload a single object as a set of parts. Each part is a contiguous portion of the object's data. You can upload these object parts independently and in any order. If transmission of any part fails, you can retransmit that part without affecting other parts. After all parts of your object are uploaded, Scaleway Object Storage assembles these parts and creates the object.
Sample request
This operation initiates a multipart upload for the Sample-object
object.
POST /Sample-object?uploads HTTP/1.1
Host: bucketname.s3.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Date: Mon, 1 Nov 2018 12:34:56 GMT
Authorization: authorization string
Sample response
HTTP/1.1 200 OK
x-amz-id-2: tx4464d513d86f498c8b7ad-005caefda8
x-amz-request-id: tx4464d513d86f498c8b7ad-005caefda8
Date: Mon, 1 Nov 2018 12:34:56 GMT
Content-Length: 197
Connection: keep-alive
<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Bucket>Sample-bucket</Bucket>
<Key>Sample-object</Key>
<UploadId>NjJmNmJhYTEtNjk1Ny00ZjJlLWJhYWUtMDg5YWMzNzFjYjQ3</UploadId>
</InitiateMultipartUploadResult>
CLI command
aws s3api create-multipart-upload --bucket my-bucket --key 'multipart/01'
OPTIONS object
The OPTIONS operation allows a browser to send a preflight request to Object Storage to determine if the actual request is supported with the specific origin, HTTP method and headers.
When a browser sends this request, Object Storage evaluates the rules that are defined in the CORS configuration.
Sample request
OPTIONS /Sampleobject HTTP/1.1
Host: bucketname.s3.nl-ams.scw.cloud
Origin: http://www.Sample.com
Access-Control-Request-Method: PUT
Sample response
HTTP/1.1 200 OK
Date: Mon, 19 Mar 2019 11:38:17 GMT
Access-Control-Allow-Origin: http://www.Sample.com
Access-Control-Allow-Methods: PUT
Access-Control-Expose-Headers: x-amz-request-id
POST object
This operation allows you to add an object to a specified bucket using HTML forms. POST is an alternate form of PUT that enables browser-based uploads as a way of putting objects in buckets.
Sample request
POST /file.txt HTTP/1.1
Content-Length: 4
Host: bucket.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Date: Thu, 11 Apr 2019 08:28:57 GMT
Authorization: authorization string
Content-Type: text/plain
Expect: the 100-continue HTTP status code
ObjectContent
Sample response
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
x-amz-id-2: txd16e07b7d52a46f08eb62-005caef22f
x-amz-request-id: txd16e07b7d52a46f08eb62-005caef22f
x-amz-version-id: default
Date: Thu, 11 Apr 2019 08:28:58 GMT
ETag: d41d8cd98f00b204e9800998ecf8427e
Content-Length: 0
Connection: close
PutObject
This operation allows you to add an object to a bucket.
Sample request
PUT /Sample.txt HTTP/1.1
Content-Length: 14
Content-Type: text/plain
Host: bucket.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date: 20190411T075215Z
Authorization: authorization string
Sample response
HTTP/1.1 200 OK
Date: Thu, 11 Apr 2019 07:52:15 GMT
x-amz-request-id: txd16e07b7d52a46f08eb62-005caef22f
Content-Length: 0
Accept-Ranges: bytes
Last-Modified: Thu, 11 Apr 2019 07:52:15 GMT
Etag: d41d8cd98f00b204e9800998ecf8427e
Connection: close
CLI command
aws s3api put-object --bucket BucketName --key dir-1/ObjectName --body ObjectName
PutObjectAcl
This operation allows you to use the ACL subresource to set the access control list (ACL) permissions for an object that already exists in a bucket. The --acl
subcommand possible values are:
- private
- public-read
- public-read-write
- authenticated-read
- bucket-owner-read
- bucket-owner-full-control
Sample request
PUT /demo.jpg?acl HTTP/1.1
acl=
host:bucket.s3.nl-ams.scw.cloud
x-amz-acl:public-read
x-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-amz-date:20190411T085423Z
Sample response
HTTP/1.1 200 OK
Date: Thu, 11 Apr 2019 08:54:23 GMT
x-amz-request-id: txf2d890e745114dc5ace62-005caf03f1
Content-Type: application/xml
Content-Length: 0
Connection: close
CLI command
aws s3api put-object-acl --bucket BucketName --key file.txt --acl private
PutObjectCopy
This operation allows you to create a new object from an existing one.
Sample request
This Sample copies my-image.jpg
into the bucket newbucket
, with the key name my-second-image.jpg
.
PUT /my-second-image.jpg HTTP/1.1
Host: oldbucket.s3.nl-ams.scw.cloud
x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Date: Thu, 11 Apr 2019 08:41:12 GMT
x-amz-copy-source: /bucket/my-image.jpg
Authorization: authorization string
Sample response
HTTP/1.1 200 OK
x-amz-id-2: tx4464d513d86f498c8b7ad-005caefda8
x-amz-request-id: tx4464d513d86f498c8b7ad-005caefda8
Date: Thu, 11 Apr 2019 08:41:12 GMT
Connection: close
<CopyObjectResult>
<LastModified>2019-04-11Z08:33:10</LastModified>
<ETag>f3c8f2ac362e890999d282db06a34469</ETag>
</CopyObjectResult>
CLI command
aws s3api copy-object --copy-source bucket-1/test.txt --key test.txt --bucket bucket-2
PutObjectLockConfiguration
This operation applies the lock configuration on a bucket.
Sample request
PUT /lockedbucket?object-lock HTTP/1.1
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ObjectLockEnabled>Enabled</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode>COMPLIANCE</Mode>
<Days>1000</Days>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
PutObjectTagging
This operation allows you to add a tag set to an existing object in a bucket.
Sample request
PutObject-key?tagging HTTP/1.1
Host: bucket.s3.nl-ams.scw.cloud
Content-Length: length
Content-MD5: 88jyrDYuiQmZ0oLbBqNEaQ==
x-amz-date: 20190313T091956Z
Authorization: authorization string
<Tagging>
<TagSet>
<Tag>
<Key>Object Description</Key>
<Value>Company Presentation</Value>
</Tag>
<Tag>
<Key>Client</Key>
<Value>Scaleway</Value>
</Tag>
</TagSet>
</Tagging>
Sample response
HTTP/1.1 200 OK
x-amz-id-2: tx9b476790a39c409d8b029-005caf01d5
x-amz-request-id: tx9b476790a39c409d8b029-005caf01d5
Date: Wed, 13 Mar 2019 09:20:19 GMT
RestoreObject
This call moves an object back to the STANDARD
storage class for the specified number of days.
It triggers a background restore job on the Object Storage service. The status of the restore is available in the x-amz-restore
response header of the HeadObject
call.
Sample request
POST /object?restore HTTP/1.1
Host: bucket.s3.fr-par.scw.cloud
x-amz-date: 20220406T122555Z
Authorization: authorization string
<?xml version="1.0" encoding="UTF-8"?>
<RestoreRequest xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Days>15</Days>
</RestoreRequest>
Sample response
HTTP/1.1 202 Accepted
x-amz-id-2: txa1c547b9e2fb41d5b9cc2-00624d86d3
x-amz-request-id: txa1c547b9e2fb41d5b9cc2-00624d86d3
Date: Wed, 06 Apr 2022 12:26:06 GMT