我使用云存储来提供许多JSON文件,用于跨域资源共享;但我发现我必须设置ACL以允许所有用户可读吗?
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
(基于Cookie,将重定向到accounts.google.com
进行身份验证,并重定向到xxx.googleusercontent.com / ...?看起来像是已签名的网址;但回复并不具备CORS标题)在存储桶上,我设置了适当的CORS并允许来自Origin的GET请求:http:// www.softwareishard.com
但问题是我发现它可以工作的唯一方法是我设置所有可读的ACL;但是有些文件是保密的,我不想要全世界的可读性;
通过https:// storage.cloud.google.com / my-bucket/my-full-keyname.json
进行第二类网址访问我可以像gsutil acl ch -g my-domain.com:r gs://my-bucket/my-full-keyname.json
一样设置ACL 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无法加载。
问题是存储.googleapis.com可以通过CORS访问,但只有当ACL设置为All:Readable时,全世界都是匿名可读的;
使用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?感谢
答案 0 :(得分:0)
问题是存储.googleapis.com可以通过CORS访问,但只有当ACL设置为All:Readable时,全世界都是匿名可读的;
使用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?感谢