Я пытаюсь загрузить файл, но получаю следующее сообщение об ошибке:
https://sapco.nyc3.digitaloceanspaces.com/b3vcchphzgj5m8p6ld51yk7867uu?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=QTHCA5KKQUHAKMMATAIP%2F20200503%2Fnyc3%2Fs3%2Faws4_request&X-Amz-Date=20200503T214158Z&X-Amz-Expires=10800&X-Amz-SignedHeaders=content-md5%3Bcontent-type%3Bhost&X-Amz-Signature=7b77a0f1551a262586980b709fdc44a2bc173ab6ae7279385e831493b1d13e53
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>BadDigest</Code>
<BucketName>sapco</BucketName>
<RequestId>tx000000000000013462bc9-005eaf36fb-3518e03-nyc3a</RequestId>
<HostId>3518e03-nyc3a-nyc</HostId>
</Error>
Как я могу отладить это дальше?
Пока я пробовал:
- Сброс моих ключей доступа и секретных ключей.
- Сначала я подумал, что это связано с работой, связанной с PWA, но я перешел на более раннюю ветку и столкнулся с теми же проблемами.
- Пробовал разные файлы: у каждого одна и та же ошибка.
- Бывает как в прод. и локально.
Обновление 1: это случайным образом снова начало работать на производстве. Однако он все еще локально сломан.
В том же файле у меня есть 2 пути для запроса PUT
, который приводит к указанной выше ошибке.
-
Проблема должна быть связана со способом вычисления X-Amz-Signature.
Копая дальше с
bundle open activestorage
, я вижу, что это примерно здесь. https://cutt.ly/6yjc7u1Я проверил, что Content-Length и Content-MD5 одинаковы (по сравнению с локальным и продуктом). (123803 и
ujNHxwCuwZ1mak927GUX3g==
соответственно).Обновление 2: я пробовал это в Firefox с тем же изображением и без проблем локально. С кешем должно быть что-то подозрительное. Затем я попробовал открыть окно в режиме инкогнито, и это тоже сработало. Наконец, я сделал резкое обновление в Chrome и теперь разблокировал себя. Не совсем понял, что происходит, но оставил последнюю информацию для всех:
Заголовки запроса Chrome (не работает, ошибка 400)
PUT /lw5lufemkgb7ww83pdc56qg2gb0j?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=QTHCA5KKQUHAKMMATAIP%2F20200504%2Fnyc3%2Fs3%2Faws4_request&X-Amz-Date=20200504T013900Z&X-Amz-Expires=10800&X-Amz-SignedHeaders=content-md5%3Bcontent-type%3Bhost&X-Amz-Signature=1ea88bf8550d9bab67b5bca3aa97f7b15f1a44e117dd4f5cea0744c898f70684 HTTP/1.1 Host: sapco.nyc3.digitaloceanspaces.com Connection: keep-alive Content-Length: 0 Pragma: no-cache Cache-Control: no-cache Accept: */* DNT: 1 Content-MD5: ujNHxwCuwZ1mak927GUX3g== User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 Content-Type: image/jpeg Origin: http://localhost:3000 Sec-Fetch-Site: cross-site Sec-Fetch-Mode: cors Sec-Fetch-Dest: empty Referer: http://localhost:3000/ Accept-Encoding: gzip, deflate, br Accept-Language: en
Заголовки запросов Firefox (работает)
Host: sapco.nyc3.digitaloceanspaces.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:75.0) Gecko/20100101 Firefox/75.0 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Content-Type: image/png Content-Length: 254924 Referer: http://localhost:3000/ Content-MD5: z0lzYqq/S1TYxKqL0rJMPw== Origin: http://localhost:3000 DNT: 1 Connection: keep-alive
Заголовки запросов Chrome (работают)
Host: sapco.nyc3.digitaloceanspaces.com Connection: keep-alive Content-Length: 123803 Pragma: no-cache Cache-Control: no-cache DNT: 1 Content-MD5: ujNHxwCuwZ1mak927GUX3g== User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 Content-Type: image/jpeg Accept: */* Origin: http://localhost:3000 Sec-Fetch-Site: cross-site Sec-Fetch-Mode: cors Sec-Fetch-Dest: empty Referer: http://localhost:3000/ Accept-Encoding: gzip, deflate, br Accept-Language: en