Rails 6 activestorage heroku amazon s3 ошибка CORS только на некоторых страницах - PullRequest
0 голосов
/ 16 июня 2020

У меня есть приложение rails 6 с активным хранилищем на Heroku.

Тестирование сайта: загрузка работает на некоторых страницах, кроме одной, когда я создаю странную запись. Я получаю следующие ошибки:

GET https://skilld-prod.s3.eu-west-2.amazonaws.com/g40wbxud5tv096ikj4c416zg1reb?response-content-disposition=inline%3B%20filename%3D%22SKILLD-random.png%22%3B%20filename%2A%3DUTF-8%27%27SKILLD-random.png&response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=[CRED]%2F20200616%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20200616T191859Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=fd5a83492eb59227618694cc63c3e47b093cf9d447ac8a5ba114c8f5ff668cde 404 (Not Found)
g40wbxud5tv096ikj4c416zg1reb:1 

GET https://skilld-prod.s3.eu-west-2.amazonaws.com/g40wbxud5tv096ikj4c416zg1reb?response-content-disposition=inline%3B%20filename%3D%22SKILLD-random.png%22%3B%20filename%2A%3DUTF-8%27%27SKILLD-random.png&response-content-type=image%2Fpng&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=[CRED]%2F20200616%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20200616T191859Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=fd5a83492eb59227618694cc63c3e47b093cf9d447ac8a5ba114c8f5ff668cde 404 (Not Found)
Image (async)
t.clone @ application-34795cb6b8112330e96d.js:2
(anonymous) @ application-34795cb6b8112330e96d.js:2
setTimeout (async)
a.defer @ application-34795cb6b8112330e96d.js:2
e.cacheSnapshot @ application-34795cb6b8112330e96d.js:2
t.cacheSnapshot @ application-34795cb6b8112330e96d.js:2
(anonymous) @ application-34795cb6b8112330e96d.js:2
(anonymous) @ application-34795cb6b8112330e96d.js:2
requestAnimationFrame (async)
t.render @ application-34795cb6b8112330e96d.js:2
t.loadResponse @ application-34795cb6b8112330e96d.js:2
t.visitRequestCompleted @ application-34795cb6b8112330e96d.js:2
t.requestCompletedWithResponse @ application-34795cb6b8112330e96d.js:2
(anonymous) @ application-34795cb6b8112330e96d.js:2
e.endRequest @ application-34795cb6b8112330e96d.js:2
e.requestLoaded @ application-34795cb6b8112330e96d.js:2
(anonymous) @ application-34795cb6b8112330e96d.js:2
load (async)
e.createXHR @ application-34795cb6b8112330e96d.js:2
e @ application-34795cb6b8112330e96d.js:2
t.issueRequest @ application-34795cb6b8112330e96d.js:2
t.visitStarted @ application-34795cb6b8112330e96d.js:2
t.start @ application-34795cb6b8112330e96d.js:2
e.startVisit @ application-34795cb6b8112330e96d.js:2
e.startVisitToLocationWithAction @ application-34795cb6b8112330e96d.js:2
t.visitProposedToLocationWithAction @ application-34795cb6b8112330e96d.js:2
e.visit @ application-34795cb6b8112330e96d.js:2
e.clickBubbled @ application-34795cb6b8112330e96d.js:2
(anonymous) @ application-34795cb6b8112330e96d.js:22F20200616%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20200616T192336Z&X-Amz-Expires=300&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bcontent-type%3Bhost&X-Amz-Signature=38799d5165bbfc2476a928f09494dc11eda6daff063dcfb50992ab4a9d00f18e' from origin 'http://skilld-prod.herokuapp.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
/articles/new:1 Access to XMLHttpRequest at 'https://skilld-prod.s3.eu-west-2.amazonaws.com/ivsfjzuq89j7fljhd95730t1u03r?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=[CRED]%
activestorage.js:825 

PUT https://skilld-prod.s3.eu-west-2.amazonaws.com/ivsfjzuq89j7fljhd95730t1u03r?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=[CRED]%2F20200616%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20200616T192336Z&X-Amz-Expires=300&X-Amz-SignedHeaders=content-length%3Bcontent-md5%3Bcontent-type%3Bhost&X-Amz-Signature=38799d5165bbfc2476a928f09494dc11eda6daff063dcfb50992ab4a9d00f18e net::ERR_FAILED

[CRED] - это место, где я отредактировал ключ

У меня есть следующее для моей политики CORS корзины:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>https://skilld-prod.herokuapp.com</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

Как я уже сказал, он работает для некоторых записей, но не для некоторых.

Вот что происходит, когда он действительно работает

2020-06-16T19:43:11.452206+00:00 app[web.1]: I, [2020-06-16T19:43:11.452141 #4]  INFO -- : [25cade4b-68c8-41d5-b7f3-40026f8ec97c] Completed 200 OK in 39ms (Views: 22.1ms | ActiveRecord: 10.7ms | Allocations: 8981)
2020-06-16T19:43:11.497074+00:00 app[web.1]: I, [2020-06-16T19:43:11.496958 #4]  INFO -- : [ActiveJob] [ActiveStorage::PurgeJob] [3be17db4-39fd-4fc5-a316-b09ecc4fa19b]   S3 Storage (88.2ms) Deleted files by key prefix: variants/2v4oj9cqqpby0z1469njx97l5m53/
2020-06-16T19:43:11.497246+00:00 app[web.1]: I, [2020-06-16T19:43:11.497179 #4]  INFO -- : [ActiveJob] [ActiveStorage::PurgeJob] [3be17db4-39fd-4fc5-a316-b09ecc4fa19b] Performed ActiveStorage::PurgeJob (Job ID: 3be17db4-39fd-4fc5-a316-b09ecc4fa19b) from Async(active_storage_purge) in 227.34ms
2020-06-16T19:43:11.579913+00:00 heroku[router]: at=info method=GET path="/packs/css/application-fd3423b0.css" host=skilld-prod.herokuapp.com request_id=e3fcd44f-1d30-4fc9-bf31-1163b23ad04e fwd="77.102.59.126" dyno=web.1 connect=0ms service=1ms status=304 bytes=48 protocol=http
2020-06-16T19:43:11.456143+00:00 heroku[router]: at=info method=GET path="/teams/ohio-fried-chicken" host=skilld-prod.herokuapp.com request_id=25cade4b-68c8-41d5-b7f3-40026f8ec97c fwd="77.102.59.126" dyno=web.1 connect=7ms service=46ms status=200 bytes=28673 protocol=http
2020-06-16T19:43:11.592953+00:00 heroku[router]: at=info method=GET path="/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBIUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--532ff0fa552ce01e8db6033c303d854267d4833b/oneplus_7_series_stock_2.jpg" host=skilld-prod.herokuapp.com request_id=afd99de1-427f-49fc-95f2-e76bdcc33ca8 fwd="77.102.59.126" dyno=web.1 connect=0ms service=12ms status=302 bytes=2154 protocol=http
2020-06-16T19:43:11.584060+00:00 app[web.1]: I, [2020-06-16T19:43:11.583915 #4]  INFO -- : [afd99de1-427f-49fc-95f2-e76bdcc33ca8] Started GET "/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBIUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--532ff0fa552ce01e8db6033c303d854267d4833b/oneplus_7_series_stock_2.jpg" for 77.102.59.126 at 2020-06-16 19:43:11 +0000
2020-06-16T19:43:11.585675+00:00 app[web.1]: I, [2020-06-16T19:43:11.585576 #4]  INFO -- : [afd99de1-427f-49fc-95f2-e76bdcc33ca8] Processing by ActiveStorage::BlobsController#show as JPEG
2020-06-16T19:43:11.585795+00:00 app[web.1]: I, [2020-06-16T19:43:11.585702 #4]  INFO -- : [afd99de1-427f-49fc-95f2-e76bdcc33ca8]   Parameters: {"signed_id"=>"eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBIUT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--532ff0fa552ce01e8db6033c303d854267d4833b", "filename"=>"oneplus_7_series_stock_2"}
2020-06-16T19:43:11.589746+00:00 app[web.1]: D, [2020-06-16T19:43:11.589661 #4] DEBUG -- : [afd99de1-427f-49fc-95f2-e76bdcc33ca8]   ActiveStorage::Blob Load (0.9ms)  SELECT "active_storage_blobs".* FROM "active_storage_blobs" WHERE "active_storage_blobs"."id" = $1 LIMIT $2  [["id", 24], ["LIMIT", 1]]
2020-06-16T19:43:11.592128+00:00 app[web.1]: D, [2020-06-16T19:43:11.592016 #4] DEBUG -- : [afd99de1-427f-49fc-95f2-e76bdcc33ca8]   S3 Storage (1.6ms) Generated URL for file at key: fx7x8gnn9mmb2pwxbpsc9fv65xfk (https://skilld-prod.s3.eu-west-2.amazonaws.com/fx7x8gnn9mmb2pwxbpsc9fv65xfk?response-content-disposition=inline%3B%20filename%3D%22oneplus_7_series_stock_2.jpg%22%3B%20filename%2A%3DUTF-8%27%27oneplus_7_series_stock_2.jpg&response-content-type=image%2Fjpeg&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=[CRED]%2F20200616%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20200616T194311Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=cb2ebcdf5f80dccbf53d21aae53a414652cdc95a141f362c70151547b203d3b6)
2020-06-16T19:43:11.592494+00:00 app[web.1]: I, [2020-06-16T19:43:11.592391 #4]  INFO -- : [afd99de1-427f-49fc-95f2-e76bdcc33ca8] Redirected to https://skilld-prod.s3.eu-west-2.amazonaws.com/fx7x8gnn9mmb2pwxbpsc9fv65xfk?response-content-disposition=inline%3B%20filename%3D%22oneplus_7_series_stock_2.jpg%22%3B%20filename%2A%3DUTF-8%27%27oneplus_7_series_stock_2.jpg&response-content-type=image%2Fjpeg&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=[CRED]%2F20200616%2Feu-west-2%2Fs3%2Faws4_request&X-Amz-Date=20200616T194311Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=cb2ebcdf5f80dccbf53d21aae53a414652cdc95a141f362c70151547b203d3b6
2020-06-16T19:43:11.592758+00:00 app[web.1]: I, [2020-06-16T19:43:11.592682 #4]  INFO -- : [afd99de1-427f-49fc-95f2-e76bdcc33ca8] Completed 302 Found in 7ms (ActiveRecord: 0.9ms | Allocations: 1564)
2020-06-16T19:43:12.285264+00:00 app[web.1]: I, [2020-06-16T19:43:12.285120 #4]  INFO -- : [ActiveJob] [ActiveStorage::AnalyzeJob] [58c5e08f-c14c-4993-a9cf-94bfb94c9b29]   S3 Storage (964.5ms) Downloaded file from key: fx7x8gnn9mmb2pwxbpsc9fv65xfk
2020-06-16T19:43:12.446389+00:00 app[web.1]: D, [2020-06-16T19:43:12.446269 #4] DEBUG -- : [ActiveJob] [ActiveStorage::AnalyzeJob] [58c5e08f-c14c-4993-a9cf-94bfb94c9b29]    (0.8ms)  BEGIN
2020-06-16T19:43:12.447810+00:00 app[web.1]: D, [2020-06-16T19:43:12.447735 #4] DEBUG -- : [ActiveJob] [ActiveStorage::AnalyzeJob] [58c5e08f-c14c-4993-a9cf-94bfb94c9b29]   ActiveStorage::Blob Update (1.1ms)  UPDATE "active_storage_blobs" SET "metadata" = $1 WHERE "active_storage_blobs"."id" = $2  [["metadata", "{\"identified\":true,\"width\":2560,\"height\":1440,\"analyzed\":true}"], ["id", 24]]
2020-06-16T19:43:12.449862+00:00 app[web.1]: D, [2020-06-16T19:43:12.449786 #4] DEBUG -- : [ActiveJob] [ActiveStorage::AnalyzeJob] [58c5e08f-c14c-4993-a9cf-94bfb94c9b29]    (1.6ms)  COMMIT
2020-06-16T19:43:12.450173+00:00 app[web.1]: I, [2020-06-16T19:43:12.450094 #4]  INFO -- : [ActiveJob] [ActiveStorage::AnalyzeJob] [58c5e08f-c14c-4993-a9cf-94bfb94c9b29] Performed ActiveStorage::AnalyzeJob (Job ID: 58c5e08f-c14c-4993-a9cf-94bfb94c9b29) from Async(active_storage_analysis) in 1130.08ms

Когда я go загружаю, а я загружаю, это напрямую загрузить

...