Google Cloud Storage - другой файл через http против https
Я столкнулся с какой-то действительно странной ошибкой в Google Cloud Storage.
Я загрузил заполненный нулями файл размером 1 МБ в корзину, и всякий раз, когда я загружаю его с помощью http, я получаю другой файл (другое содержимое, другой md5, одинаковый размер), чем если бы я загружал его с помощью https (что дает мне правильный файл).
Настоящий MD5 это: b6d81b360a5672d80c27430f39153e2c
Пример: (Вы можете попробовать это дома)
wget http://storage.googleapis.com/weirdbug/test1m.test
md5 test1m.test
// MD5 (test1m.test) = 0575922c3eda2ae6fb2865cc136f65ee
rm test1m.test
wget https://storage.googleapis.com/weirdbug/test1m.test
md5 test1m.test
// MD5 (test1m.test) = b6d81b360a5672d80c27430f39153e2c
Я хочу верить, что я делаю что-то не так с моей стороны, но я не могу понять это.
Есть идеи? Я думал, что GCE Storage должен работать одинаково с HTTP и HTTPS.
1 ответ
Правильная сумма MD5 для файла размером в один мегабайт, состоящего полностью из нулевых байтов, равна b6d81b360a5672d80c27430f39153e2c (тот, который вы видели для HTTPS), поэтому что-то не так с вашим HTTP wget. Мне интересно, возможно, у вас есть прокси или что-то, что вставляет нежелательную информацию в ваш ответ, чего не происходит для вашего запроса HTTPS.
Вот что я вижу, когда пытаюсь это сделать:
$> dd if=/dev/zero of=/tmp/test1m.test bs=1024 count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00866687 s, 121 MB/s
$> md5sum /tmp/test1m.test
b6d81b360a5672d80c27430f39153e2c /tmp/test1m.test
$> gsutil cp -a public-read /tmp/test1m.test gs://special-test/
Copying file:///tmp/test1m.test [Content-Type=application/octet-stream]...
Uploading gs://special-test/test1m.test: 1 MiB/1 MiB
$> wget http://storage.googleapis.com/yarbrough-test/test1m.test
$> md5sum test1m.test
b6d81b360a5672d80c27430f39153e2c test1m.test