Назад | Перейти на главную страницу

Облачное хранилище Google - другой файл через 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 должно одинаково работать как с 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