我通过apache-libcloud和django-storage设置我的django应用程序以使用谷歌云存储。
我的LIBCLOUD_PROVIDER
看起来像这样
LIBCLOUD_PROVIDERS = {
'default': {
'type': 'libcloud.storage.types.Provider.GOOGLE_STORAGE',
'bucket': 'bucket-name',
'user': os.environ.get('GCE_STORAGE_KEY'),
'key': os.environ.get('GCE_STORAGE_SECRET')
},
}
STATICFILES_STORAGE = 'etc.utilities.storage.GSStaticBucket'
当我运行./manage.py collectstatic
并且文件上传成功时似乎工作正常。但我正在寻找一种控制文件访问控制的方法;现在它将所有文件上传为私有文件,而不是希望它们上传为可公开访问。
但正如您从上面的截图中看到的那样。上传的文件未标记为“共享公开”
有人可以提出建议吗?
答案 0 :(得分:1)
您可以在存储桶上设置default object access control,以便为新创建的对象提供公共读取权限。
Apache Libcloud允许您使用您的请求发送额外的标头,并且您可以通过向上传请求添加x-goog-acl
标头来实现相同的行为。他们的文档没有显示,但它与S3 example类似。
但是,似乎django-storages包装libcloud并不允许提供该数据,因此您可能不得不依赖于桶默认对象访问控制。