Я столкнулся с действительно странной ошибкой в 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 должно одинаково работать как с HTTP, так и с HTTPS.
Правильная сумма 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