.. _S3ObjectAPIManual: ###### Object ###### Основные операции с объектами. .. _S3PutObject: ********* PutObject ********* Добавляет объект в бакет. Для выполнения данной операции необходимы права на запись в бакет. При загрузке объекта можно задать права доступа (ACL), пользовательские метаданные (*x-amz-meta-\**) и другие параметры. Пример запроса ============== .. dropdown:: Запрос :open: :: PUT /bucket_1/picture.png HTTP/1.1 Host: storage.cloud.croc.ru Expires: Sat, 15 Nov 2025 00:00:00 GMT X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Date: 20220530T100558Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220530/{region}/s3/aws4_request, SignedHeaders=expires;host;x-amz-acl;x-amz-content-sha256;x-amz-date;x-amz-meta-owner, Signature=f14cb0ccf36e83ffeec9068ef6ff66df7eb16058ca2765f493699130755c08da Content-Type: image/png Content-Length: 22 "" Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 200 OK content-length: 0 etag: "8867b8c5ef7d69f34a427e7d2187e0f2" x-amz-version-id: bunRaQM-7JHNd3yUAjMmS8iUJB.4hyI x-amz-request-id: tx000000000000005941c5b-006294976f-4017b271-default date: Mon, 30 May 2022 10:07:44 GMT .. _S3PutEncryptedObject: Пример запроса (с шифрованием объекта) ====================================== Добавляет объект в бакет и шифрует его. Данные шифруются при записи на диск и хранятся в зашифрованном виде. В Облаке КРОК поддерживается шифрование SSE-C, где в качестве алгоритма шифрования используется AES-256. При загрузке объекта необходимо указать 256-разрядный ключ шифрования в кодировке base64. Кроме того, вместо с ключом необходимо передать его 128-разрядный хеш MD5 — также в кодировке base64. Для расчёта хеша следует использовать исходный ключ, а не его кодировку в base64. При скачивании зашифрованного объекта и других операциях с ним необходимо указать параметры шифрования. .. dropdown:: Запрос :open: :: PUT /bucket1/secret.txt HTTP/1.1 Host: storage.cloud.croc.ru x-amz-server-side-encryption-customer-algorithm: AES256 x-amz-server-side-encryption-customer-key: U2hWbVlxM3Q2dzl6JEMmRilKQE1jUWZUalduWnI0dTc= x-amz-server-side-encryption-customer-key-MD5: 1J+naYvPxIshFbjdz2cU5Q== X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Date: 20220530T165351Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220530/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-server-side-encryption-customer-algorithm;x-amz-server-side-encryption-customer-key;x-amz-server-side-encryption-customer-key-md5, Signature=bd31e7aa50608595deb70c05ddb03f14e6b47a640b9fbab37de429d0355c8800 Content-Type: text/plain Content-Length: 22 "" Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 200 OK content-length: 0 etag: "dff23456a91215d7153f85a7c127aaa9" accept-ranges: bytes x-amz-server-side-encryption-customer-algorithm: AES256 x-amz-server-side-encryption-customer-key-MD5: 1J+naYvPxIshFbjdz2cU5Q== x-amz-request-id: tx000000000000005d6a08c-006294f69e-40173986-default date: Mon, 30 May 2022 16:53:51 GMT .. _S3PutObjectTagging: **************** PutObjectTagging **************** Задаёт теги объекта. Всего можно задать до 10 тегов. Пример запроса ============== .. dropdown:: Запрос :open: :: PUT /bucket1/instruction.txt?tagging=null HTTP/1.1 Host: storage.cloud.croc.ru X-Amz-Content-Sha256: beaead3198f7da1e70d03ab969765e0821b24fc913697e929e726aeaebf0eba3 X-Amz-Date: 20220531T143433Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220531/{region}/s3/aws4_request, SignedHeaders=expires;host;x-amz-acl;x-amz-content-sha256;x-amz-date;x-amz-meta-owner, Signature=22e250bc3d1bc57cc0cc2739eb4cb5124d9c4e710a3ae3ff4c945d936709d6c5 Content-Type: text/plain Content-Length: 247 Writer IvanIvanov Content Instruction Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 200 OK x-amz-request-id: tx000000000000007052615-0062962937-41e627a3-default content-type: application/xml content-length: 0 date: Tue, 31 May 2022 14:41:59 GMT .. _S3GetObject: ********* GetObject ********* Извлекает объект из бакета. Если не указана версия объекта, то скачивается последняя (``null``) версия объекта. Для выполнения операции необходимы права на чтение объекта. Если права на чтение предоставлены анонимным пользователям, то заголовок `Authorization` не нужен. Помимо самого объекта в заголовках ответа возвращается информация об объекте: его объём, дата последнего изменения, время хранения и т.п. Пример запроса ============== .. dropdown:: Запрос :open: :: GET /bucket_1/picture.png HTTP/1.1 Host: storage.cloud.croc.ru X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Date: 20220530T155617Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220530/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=ede3ccb967783eb3ef8cc26c3c83c812ff9ea191c27217d7b5d7bf6f60d15904 Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 200 OK content-length 394026 accept-ranges: bytes last-modified: Mon, 30 May 2022 10:07:44 GMT x-amz-version-id: bunRaQM-7JHNd3yUAjMmS8iUJB.4hyI x-rgw-object-type: Normal etag: "8867b8c5ef7d69f34a427e7d2187e0f2" expires: Sat, 15 Nov 2025 00:00:00 GMT x-amz-request-id: tx000000000000005b40ab7-006294ca8e-4017b271-default content-type: image/png date: Mon, 30 May 2022 15:56:15 GMT "" .. _S3GetObjectTagging: **************** GetObjectTagging **************** Возвращает теги объекта. Пример запроса ============== .. dropdown:: Запрос :open: :: GET /bucket1/instruction.txt?tagging=null HTTP/1.1 Host: storage.cloud.croc.ru X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Date: 20220531T144851Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220531/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=474a622a1017221d50e6b50b87b3cbcfd1719a10b61d4d5b4e9595f7536880e6 Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 200 OK x-amz-request-id: tx000000000000003d54612-0062962ad3-41e5801e-default content-type: application/xml content-length: 226 date: Tue, 31 May 2022 14:48:51 GMT Content Instruction Writer IvanIvanov .. _S3HeadObject: ********** HeadObject ********** Возвращает информацию об объекте. Запрос позволяет получить ту же информацию об объекте, что и :ref:`метод GetObject `, без скачивания самого объекта. Пример запроса ============== .. dropdown:: Запрос :open: :: HEAD /bucket_1/picture.png HTTP/1.1 Host: storage.cloud.croc.ru X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Date: 20220530T162749Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220530/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=ca990478f9baef5daefd7f062d3223e54dadb970124fbfc4c2d1bf8aeb2cd12d Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 200 OK content-length 394026 accept-ranges: bytes last-modified: Mon, 30 May 2022 10:07:44 GMT x-amz-version-id: bunRaQM-7JHNd3yUAjMmS8iUJB.4hyI x-rgw-object-type: Normal etag: "8867b8c5ef7d69f34a427e7d2187e0f2" expires: Sat, 15 Nov 2025 00:00:00 GMT x-amz-request-id: tx000000000000005b40ab7-006294ca8e-4017b271-default content-type: image/png date: Mon, 30 May 2022 15:56:15 GMT .. _S3CopyObject: ********** CopyObject ********** Копирует объект из одного бакета в другой. Для выполнения данной операции необходимы права на запись в целевой бакет. Имена исходных объекта и бакета передаются в заголовке `x-amz-copy-source`. Для скопированного объекта можно задать права доступа (ACL), пользовательские метаданные (*x-amz-meta-\**) и другие параметры. Пример запроса ============== Копирует объект `picture1.png` из бакета *bucket1* в бакет *bucket2* и меняет его имя на `picture_new.png`. .. dropdown:: Запрос :open: :: PUT /bucket2/picture_new.png HTTP/1.1 Host: storage.cloud.croc.ru x-amz-copy-source: /bucket1/picture1.png X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Date: 20220530T133802Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220530/{region}/s3/aws4_request, SignedHeaders=expires;host;x-amz-acl;x-amz-content-sha256;x-amz-copy-source;x-amz-date;x-amz-meta-owner, Signature=4b484c059df23b7fd6dcc45bf084494b0e002d420773b8ad0b38ec74ecf62c01 Content-Type: text/plain Content-Length: 22 Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 200 OK transfer-encoding: chunked x-amz-request-id: tx000000000000005b40ab7-006294ca8e-4017b271-default content-type: application-xml date: Mon, 30 May 2022 13:45:50 GMT 2022-05-30T13:45:50.496Z 153f23962d0d3f983e9d961958d811e4 .. _S3DeleteObjectTagging: ******************* DeleteObjectTagging ******************* Удаляет все теги объекта. Пример запроса ============== .. dropdown:: Запрос :open: :: DELETE /bucket1/document.txt?tagging=null&versionId=csvHIfPUZHiuSlpVmCuFuhWmI-94J2k HTTP/1.1 Host: storage.cloud.croc.ru X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Date: 20220606T143606Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220606/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=cff752f8fb54a499bdd6523757463bc39d029112027115ed10062062cbaebb3c Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 204 No Content x-amz-request-id: tx00000000000000f8b4201-00629e10d6-37d64f12-default date: Mon, 06 Jun 2022 14:36:06 GMT .. _S3DeleteObject: ************ DeleteObject ************ Удаляет последнюю (``null``) версию объекта. Вы можете также удалить конкретную версию объекта, указав её идентификатор. Удалённый объект маркируется как удалённый (значение `DeleteMarker` задаётся равным ``True``). Если нулевая версия отсутствует (например, была удалена ранее или такого объекта не существует), то запрос завершается успешно. Пример запроса ============== .. dropdown:: Запрос :open: :: DELETE /bucket1/document1.docx HTTP/1.1 Host: storage.cloud.croc.ru X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 X-Amz-Date: 20220530T140113Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220530/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=5b53526ea569a1a8f4bc817e05cdd3cf30bbf7a35ee7aa5ee44eb245c1770ec9 Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 204 No Content x-amz-version-id: null x-amz-delete-marker: true x-amz-request-id: tx000000000000005b40ab7-006294ca8e-4017b271-default date: Mon, 30 May 2022 13:45:50 GMT .. _S3DeleteObjects: ************* DeleteObjects ************* Удаляет указанные объекты и их версии. За одну операции можно удалить до 1000 объектов и версий. При удалении объекта удаляется его последняя (``null``) версия и добавляется маркер удаления (`DeleteMarker`). Чтобы удалить конкретную версию объекта, необходимо указать её идентификатор. Если указанный объект не найден, то операция завершается успешно. Пример запроса ============== Удаляет объект и версию объекта. .. dropdown:: Запрос :open: :: POST /bucket1/?delete=null HTTP/1.1 Host: storage.cloud.croc.ru X-Amz-Content-Sha256: beaead3198f7da1e70d03ab969765e0821b24fc913697e929e726aeaebf0eba3 X-Amz-Date: 20220530T150952Z Authorization: AWS4-HMAC-SHA256 Credential=project:user@company/20220530/{region}/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=6c87858da60b39644da391cb324d806a6f2f547cbc86fbdb670c04e9cf017e6c Content-Type: text/plain Content-Length: 197 text1.txt document1.docx TYdakjkQxax3CKlndqr8diCgEqjq8d7 Пример ответа ============= .. dropdown:: Ответ :: HTTP/1.1 200 OK transfer-encoding: chunked x-amz-request-id: tx000000000000005c0c752-006294de40-4017b271-default content-type: application/xml date: Mon, 30 May 2022 13:45:50 GMT text1.txt true null document1.docx TYdakjkQxax3CKlndqr8diCgEqjq8d7