Сбой DirectUpload с BadDigest DigitalOcean S3 ActiveStorage - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь загрузить файл, но получаю сообщение об ошибке, подобное следующему:

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>

Как я могу отладить это дальше?

Пока я пытался:

  1. Сброс моего доступа и секретных ключей.
  2. Сначала я подумал, что это связано с работой, связанной с PWA, но я перешел на более раннюю ветку и у меня возникли те же проблемы.
  3. Пробовал разные файлы: у каждого ошибка одинаковая.
  4. Бывает оба в продукт. и локально.

Обновление 1: Это случайно начало работать снова на производстве. Однако он все еще не работает локально.

С тем же файлом у меня есть 2 пути для запроса PUT, что приводит к указанной выше ошибке.

  1. https://sapco.nyc3.digitaloceanspaces.com/11eego5a6r9b4tslx7cex4p9x45u?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=QTHCA5KKQUHAKMMATAIP%2F20200504%2Fnyc3%2Fs3%2Faws4_request&X-Amz-Date=20200504T005319Z&X-Amz-Expires=10800&X-Amz-SignedHeaders=content-md5%3Bcontent-type%3Bhost&X-Amz-Signature=8d2037f7370eb137facc9d813fe35ed34e055313af06cd66819a72d886dfb018
  2. https://sapco.nyc3.digitaloceanspaces.com/z4vc7ujtvid0akqfn4uou46407zl?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=QTHCA5KKQUHAKMMATAIP%2F20200504%2Fnyc3%2Fs3%2Faws4_request&X-Amz-Date=20200504T005405Z&X-Amz-Expires=10800&X-Amz-SignedHeaders=content-md5%3Bcontent-type%3Bhost&X-Amz-Signature=b4b28cebe56a9b6c12ddfb2cc335b84080a3bfc5e34e2c66e19001230f8b7512

enter image description here

Проблема должна быть связана со способом X -Amz-Signature вычисляется.

Копаем дальше с bundle open activestorage Я вижу, это примерно здесь. https://cutt.ly/6yjc7u1

Я проверил, что Content-Length и Content-MD5 одинаковы (по сравнению с local и prod). (123803 и ujNHxwCuwZ1mak927GUX3g== соответственно).

Обновление 2: я попробовал это в Firefox с тем же изображением и без проблем локально. Там должно быть что-то подозрительное с тайником. Затем я попробовал окно «Инкогнито», и это тоже, похоже, сработало Наконец, я сделал жесткий рефр sh в 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

1 Ответ

0 голосов
/ 04 мая 2020

Жесткое обновление решило проблему.

...