【问题标题】:Django media url mismatch with digitalocean spacesDjango 媒体 url 与 digitalocean 空间不匹配
【发布时间】:2020-09-02 13:43:05
【问题描述】:

我有一个使用数字海洋空间在数字海洋上运行 django 应用程序的液滴。我已经设法使用 cdn 设置了与静态文件一起运行良好的空间。但是,我的问题在于上传的媒体文件。我面临 django 提供的上传文件的 url 不匹配的问题,以及空间中上传文件的实际路径。 例如,如果我使用模型上传文件:

attachment = models.FileField(upload_to='Mailserver/',blank=True,null=True)

当我点击它时返回的文件的路径,返回一个错误,路径为 'https://freelance.ams3.cdn.digitaloceanspaces.com/media/Mailserver/download.png' 这是错误的,因为上传到空间的文件的正确路径是:'https://freelance.ams3.cdn.digitaloceanspaces .com/freelance/media/Mailserver/download.png'

这是我的设置配置:

AWS_ACCESS_KEY_ID = '****************************'
AWS_SECRET_ACCESS_KEY = '*****************************'
AWS_STORAGE_BUCKET_NAME = 'freelance'
AWS_S3_ENDPOINT_URL = 'https://freelance.ams3.digitaloceanspaces.com/'
AWS_S3_CUSTOM_DOMAIN = 'freelance.ams3.cdn.digitaloceanspaces.com'
AWS_S3_SIGNATURE_VERSION = 's3v4'
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
  }
AWS_DEFAULT_ACL = 'public-read'
STATIC_URL = '{}/{}/'.format(AWS_S3_CUSTOM_DOMAIN, 'static')
STATIC_ROOT = 'static/'
STATICFILES_STORAGE = 'custom_storages.StaticStorage'

MEDIA_ROOT = 'media/'
MEDIA_URL = '{}/{}/'.format(AWS_S3_CUSTOM_DOMAIN, MEDIA_ROOT)
DEFAULT_FILE_STORAGE = 'custom_storages.MediaStorage'

custom_storages 看起来像:

from storages.backends.s3boto3 import S3Boto3Storage
from django.conf import settings

class StaticStorage(S3Boto3Storage):
    bucket_name = settings.AWS_STORAGE_BUCKET_NAME
    location = settings.STATIC_ROOT

class MediaStorage(S3Boto3Storage):
    bucket_name = settings.AWS_STORAGE_BUCKET_NAME
    location = settings.MEDIA_ROOT

我尝试创建文件夹和更改目录均无济于事。我不知道如何解决这个问题。任何帮助将不胜感激。

【问题讨论】:

    标签: django amazon-s3 digital-ocean


    【解决方案1】:

    对于遇到类似问题的任何人,我想出了一个解决方案,只需将您的自定义域编辑为:

    AWS_S3_CUSTOM_DOMAIN = 'freelance.ams3.cdn.digitaloceanspaces.com/freelance'
    

    'freelance' 是您的存储桶空间名称的名称

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 1970-01-01
      • 2021-06-21
      • 2019-12-26
      • 2019-08-07
      相关资源
      最近更新 更多