我正在使用雲存儲爲多個JSON文件提供服務,以實現跨源資源共享;但我發現必須設置ACL以允許所有用戶可讀?如何設置正確的ACL以允許來自域的用戶僅用於CORS
https://cloud.google.com/storage/docs/cross-origin
到目前爲止,我想通了兩種方式來訪問這些資源:
https:// storage.googleapis.com /my-bucket/my-full-keyname.json
- 基於
https:// storage.cloud.google.com /my-bucket/my-full-keyname.json
(餅乾,會重定向到accounts.google.com
進行身份驗證和重定向到xxx.googleusercontent.com ?/ ...看起來像一個標識的URL;但反應沒有CORS頭)
在鬥我有從原產地允許GET請求設置適當的CORS:HTTP:// www.softwareishard.com
但問題是,我發現它不僅可以工作的方式是我的設置所有可讀的ACL;但其中一些文件是機密的,我不想讓全世界都可讀;
第二種URL訪問https:// storage.cloud.google.com/my-bucket/my-full-keyname.json
我可以設置ACL,如gsutil acl ch -g my-domain.com:r gs://my-bucket/my-full-keyname.json
這裏my-domain.com是Google Apps上的一個託管域,因此它只對受認證的my-domain.com用戶有限制訪問。但https:// storage.cloud.google.com
的問題是它不支持上面的CORS。試圖加載http:// www.softwareishard.com /har/viewer/?path=https:// storage.googleapis.com/my-bucket/my-full-keyname.json
我可以在CORS請求中的網絡面板中看到302重定向,它將重定向到accounts.google.com
進行身份驗證,但har-viewer加載失敗。
的問題是storage.googleapis.com可以CORS進行訪問,但只有當ACL設置與所有:可讀,所有世界各地的匿名可讀;
與storage.cloud.google.com它是基於cookie的,可以設置ACL是可讀的,只認證的@ my-domain.com的用戶,不與世界各地的匿名讀取;但此URL是對xxxx.googleusercontent.com/path/to/my-bucket/my-objkeyname?qk=some-long-signed-string的重定向,不支持CORS。
有沒有什麼建議如何與CORS設計ACL?感謝