Python 3.x 在Django中从Google云控制台提供的静态文件
我使用GCP来服务静态文件。但Django使用的是一个签名URL,其中包含过期的googleserveraccessId等。请告诉我如何使用一个只有路径的未签名URL。 my settings.py文件Python 3.x 在Django中从Google云控制台提供的静态文件,python-3.x,django,google-cloud-platform,Python 3.x,Django,Google Cloud Platform,我使用GCP来服务静态文件。但Django使用的是一个签名URL,其中包含过期的googleserveraccessId等。请告诉我如何使用一个只有路径的未签名URL。 my settings.py文件 DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage' STATICFILES_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage' GS_BUCKET_N
DEFAULT_FILE_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
STATICFILES_STORAGE = 'storages.backends.gcloud.GoogleCloudStorage'
GS_BUCKET_NAME = 'xyzxyzxyx'
GS_CREDENTIALS = service_account.Credentials.from_service_account_file(
"project/filename.json"
)
STATICFILES_DIRS =[
os.path.join(BASE_DIR, 'myapp/static')
]
STATIC_URL = '/static/'
STATIC_ROOT = 'https://storage.googleapis.com/{}/static/'.format(GS_BUCKET_NAME)
MEDIA_URL = 'https://storage.googleapis.com/{}/'.format(GS_BUCKET_NAME)
MEDIA_ROOT = 'https://storage.googleapis.com/{}/'.format(GS_BUCKET_NAME)
如果不想使用授权或签名URL,请将bucket或对象公开,并使用以下URL格式:
https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME
有关通过Google云控制台公开对象的详细信息:
您还可以使用CLI公开对象:
gsutil acl ch -u AllUsers:R gs://BUCKET_NAME/OBJECT_NAME
在尝试这些命令之前,首先检查您的bucket配置是否支持此命令:
- 登录到谷歌云控制台
- 转到云存储
- 检查包含要公开的对象的bucket的访问控制列
- 如果列的读数为“一致”,则无法控制单个对象
确保bucket中没有任何内容是私有的。将这两个字符串添加到您的设置中。py:
GS\u QUERYSTRING\u AUTH=False
GS\U默认值\U ACL=无