【问题标题】:Can I use digital ocean spaces for user uploaded files with django?我可以将数字海洋空间用于用户使用 django 上传的文件吗?
【发布时间】:2020-07-01 01:47:20
【问题描述】:

我想为图像、javascript、css 等提供一个中心位置,以便在我的 Django 应用程序上启用水平缩放。

目前我正在查看 DigitalCcean 空间,但在他们的指南中似乎只能使用以下方式手动上传文件:

python manage.py collectstatic

有人有使用 DigitalOcean 空间处理媒体文件的经验吗?我基本上想确保上传到一个服务器上的文件可以被另一台服务器访问。

提前致谢!

【问题讨论】:

    标签: django file-upload digital-ocean


    【解决方案1】:

    是的,您可以像这样在 settings.py 文件中设置默认文件存储

    DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
    

    它将自动在您的 digitalocean 空间文件夹中创建一个媒体文件夹。用户上传的任何内容(如帖子中的图片)都将存储在媒体文件夹中,无需额外配置,只需在配置后添加该行,如下所示。出于某种原因,一些提供的 digitalocean 教程没有提到这一点。

    AWS_ACCESS_KEY_ID = 'your-spaces-access-key'
    AWS_SECRET_ACCESS_KEY = 'your-spaces-secret-access-key'
    AWS_STORAGE_BUCKET_NAME = 'your-storage-bucket-name'
    AWS_S3_ENDPOINT_URL = 'https://nyc3.digitaloceanspaces.com'
    AWS_S3_OBJECT_PARAMETERS = {
        'CacheControl': 'max-age=86400',
    }
    AWS_LOCATION = 'your-spaces-files-folder'
    
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'mysite/static'),
    ]
    STATIC_URL = 'https://%s/%s/' % (AWS_S3_ENDPOINT_URL, AWS_LOCATION)
    STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
    DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
    

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 2022-08-05
      • 1970-01-01
      • 2018-02-22
      相关资源
      最近更新 更多