Python 3.x 在Django中从Google云控制台提供的静态文件

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

我使用GCP来服务静态文件。但Django使用的是一个签名URL,其中包含过期的googleserveraccessId等。请告诉我如何使用一个只有路径的未签名URL。 my settings.py文件

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=无