Как рассчитывается значение заголовка CONTENT-MD5 для HTTP-запроса POST завершения MultiPart? - PullRequest
0 голосов
/ 21 декабря 2018

Я использую последний s3browser 8.1.5 и заметил, что запрос POST для завершения многочастной загрузки в AWS S3 имеет CONTENT-MD5 в заголовке.

Как вычисляется значение заголовка CONTENT-MD5?

В приведенном ниже запросе CONTENT-MD5 не соответствует md5 в кодировке base64 тела.

Из tcpdump:

POST /bucketxxxxx/filename?uploadId=OTc2NzgwNTItMzZjNS00MWJlLTk3Y2YtOWNlNDU5MjI0MGFl HTTP/1.1

User-Agent: S3 Browser 8-1-5 https://s3browser.com

Authorization: AWS xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Content-MD5: z8hR0GST3Hm6f518pQ7XUQ==

x-amz-date: Thu, 20 Dec 2018 04:22:54 GMT

Host: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Content-Length: 1173



<CompleteMultipartUpload><Part><PartNumber>1</PartNumber><ETag>"3e27d45b10b2d069a00eb079a62b90ea"</ETag></Part><Part><PartNumber>2</PartNumber><ETag>"eea2223793a13e29bbef110f92b29e40"</ETag></Part><Part><PartNumber>3</PartNumber><ETag>"b9bf9ef5a37f63c72eb108767e64d56f"</ETag></Part><Part><PartNumber>4</PartNumber><ETag>"0667c6da478617af1cf86c3f4f0e86ac"</ETag></Part><Part><PartNumber>5</PartNumber><ETag>"5433c390b9fc98fd90b9c0334f56beba"</ETag></Part><Part><PartNumber>6</PartNumber><ETag>"4539dcbbac5f028637d17180a674881e"</ETag></Part><Part><PartNumber>7</PartNumber><ETag>"b079a02747e444b95bec8d3374e1b6df"</ETag></Part><Part><PartNumber>8</PartNumber><ETag>"9f22ca90596f4ff455e1ab79ba12fdc0"</ETag></Part><Part><PartNumber>9</PartNumber><ETag>"c573cc702aa3f17cea3ca4248e6c20e9"</ETag></Part><Part><PartNumber>10</PartNumber><ETag>"b6d53f23fd0fa4bb5b8e702f0cdc2661"</ETag></Part><Part><PartNumber>11</PartNumber><ETag>"e780dd0053d08366b062deb640d61e4d"</ETag></Part><Part><PartNumber>12</PartNumber><ETag>"a212f6c80c8511c6a26405f909dacc70"</ETag></Part><Part><PartNumber>13</PartNumber><ETag>"5530ed86f6423ad8ab1c0cb2a703e9ef"</ETag></Part></CompleteMultipartUpload>




root@VM# echo -n "<CompleteMultipartUpload><Part><PartNumber>1</PartNumber><ETag>"3e27d45b10b2d069a00eb079a62b90ea"</ETag></Part><Part><PartNumber>2</PartNumber><ETag>"eea2223793a13e29bbef110f92b29e40"</ETag></Part><Part><PartNumber>3</PartNumber><ETag>"b9bf9ef5a37f63c72eb108767e64d56f"</ETag></Part><Part><PartNumber>4</PartNumber><ETag>"0667c6da478617af1cf86c3f4f0e86ac"</ETag></Part><Part><PartNumber>5</PartNumber><ETag>"5433c390b9fc98fd90b9c0334f56beba"</ETag></Part><Part><PartNumber>6</PartNumber><ETag>"4539dcbbac5f028637d17180a674881e"</ETag></Part><Part><PartNumber>7</PartNumber><ETag>"b079a02747e444b95bec8d3374e1b6df"</ETag></Part><Part><PartNumber>8</PartNumber><ETag>"9f22ca90596f4ff455e1ab79ba12fdc0"</ETag></Part><Part><PartNumber>9</PartNumber><ETag>"c573cc702aa3f17cea3ca4248e6c20e9"</ETag></Part><Part><PartNumber>10</PartNumber><ETag>"b6d53f23fd0fa4bb5b8e702f0cdc2661"</ETag></Part><Part><PartNumber>11</PartNumber><ETag>"e780dd0053d08366b062deb640d61e4d"</ETag></Part><Part><PartNumber>12</PartNumber><ETag>"a212f6c80c8511c6a26405f909dacc70"</ETag></Part><Part><PartNumber>13</PartNumber><ETag>"5530ed86f6423ad8ab1c0cb2a703e9ef"</ETag></Part></CompleteMultipartUpload>" | openssl md5 -binary | openssl enc -base64


cLC/vE8pS43jD2ZSgUB5iQ==

Спасибо,

Бхаскар

1 Ответ

0 голосов
/ 02 января 2019

Content-MD5 действительно представляет собой md5 тела / контента в кодировке base64 (также подтверждено службой поддержки s3browser).

Вышеприведенная ошибка не ускользнула от double quotes

root@VM:~$ echo -n "<CompleteMultipartUpload><Part><PartNumber>1</PartNumber><ETag>\""3e27d45b10b2d069a00eb079a62b90ea\""</ETag></Part><Part><PartNumber>2</PartNumber><ETag>\""eea2223793a13e29bbef110f92b29e40\""</ETag></Part><Part><PartNumber>3</PartNumber><ETag>\""b9bf9ef5a37f63c72eb108767e64d56f\""</ETag></Part><Part><PartNumber>4</PartNumber><ETag>\""0667c6da478617af1cf86c3f4f0e86ac\""</ETag></Part><Part><PartNumber>5</PartNumber><ETag>\""5433c390b9fc98fd90b9c0334f56beba\""</ETag></Part><Part><PartNumber>6</PartNumber><ETag>\""4539dcbbac5f028637d17180a674881e\""</ETag></Part><Part><PartNumber>7</PartNumber><ETag>\""b079a02747e444b95bec8d3374e1b6df\""</ETag></Part><Part><PartNumber>8</PartNumber><ETag>\""9f22ca90596f4ff455e1ab79ba12fdc0\""</ETag></Part><Part><PartNumber>9</PartNumber><ETag>\""c573cc702aa3f17cea3ca4248e6c20e9\""</ETag></Part><Part><PartNumber>10</PartNumber><ETag>\""b6d53f23fd0fa4bb5b8e702f0cdc2661\""</ETag></Part><Part><PartNumber>11</PartNumber><ETag>\""e780dd0053d08366b062deb640d61e4d\""</ETag></Part><Part><PartNumber>12</PartNumber><ETag>\""a212f6c80c8511c6a26405f909dacc70\""</ETag></Part><Part><PartNumber>13</PartNumber><ETag>\""5530ed86f6423ad8ab1c0cb2a703e9ef\""</ETag></Part></CompleteMultipartUpload>" | openssl md5 -binary | openssl enc -base64
z8hR0GST3Hm6f518pQ7XUQ==
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...