S3 ETag для файла 110 МБ, а не MD5 - PullRequest
0 голосов
/ 06 марта 2020

Насколько я понимаю, ETag должен соответствовать MD5 га sh при условии, что вы не использовали многочастную загрузку и не используете шифрование KMS.

Я только начал использовать эту функцию в приложение и обнаружили, что это не работает.

Я загрузил большой sh файл powerpoint (110 МБ) через cli, и ETag не MD5 га sh.

Используется точно такая же команда cli с меньшим файлом powerpoint, и ETag представляет собой MD5 га sh.

Такое же поведение наблюдается через консоль. Cli и console используют multipart upload под капотом или есть что-то еще, что я пропустил?


jgreenal$ aws s3 cp bigpowerpoint.pptx s3://mybucketname --sse=AES256

jgreenal$ aws s3api head-object --bucket mybucketname --key bigpowerpoint.pptx
{
    "AcceptRanges": "bytes",
    "LastModified": "Fri, 06 Mar 2020 11:15:47 GMT",
    "ContentLength": 113962008,
    "ETag": "\"d15e9a175cd9365a6480eab9105c7c86-14\"",
    "VersionId": "2JMq2pPyKMk3ZlSco4l.r5ZPip_pp6Oq",
    "ContentType": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
    "ServerSideEncryption": "AES256",
    "Metadata": {},
    "ReplicationStatus": "COMPLETED"
}

jgreenal$ aws s3 cp tinypowerpoint.pptx s3://mybucketname --sse=AES256

jgreenal$ aws s3api head-object --bucket mybucketname --key tinypowerpoint.pptx
{
    "AcceptRanges": "bytes",
    "LastModified": "Fri, 06 Mar 2020 11:20:37 GMT",
    "ContentLength": 33878,
    "ETag": "\"7a0b3c27805d5f599e5d655b13b4644c\"",
    "VersionId": "Tv1WyDSoHo2s.p59IKM_M6iaVGdh6EiF",
    "ContentType": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
    "ServerSideEncryption": "AES256",
    "Metadata": {},
    "ReplicationStatus": "COMPLETED"
}

1 Ответ

0 голосов
/ 06 марта 2020

Извините - ответ на этот вопрос уже был в моем вопросе - сначала нужно было проверить глубже.

aws s3 cp действительно использует многочастную загрузку под капотом .

jgreenal$ aws s3api put-object  --bucket my-bucketname --key bigpowerpointput.pptx --body bigpowerpoint.pptx --server-side-encryption AES256
jgreenal$ aws s3api head-object --bucket my-bucketname --key bigpowerpointput.pptx
{
    "AcceptRanges": "bytes",
    "LastModified": "Fri, 06 Mar 2020 11:43:21 GMT",
    "ContentLength": 113962008,
    "ETag": "\"a11619dc992b584587c24668c767a46c\"",
    "VersionId": "DYG.5IOkbJncwCT6iOK5c2seKBtDTg_7",
    "ContentType": "binary/octet-stream",
    "ServerSideEncryption": "AES256",
    "Metadata": {},
    "ReplicationStatus": "COMPLETED"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...