【问题标题】:Django queued storages [Errno 13] Permission deniedDjango 排队存储 [Errno 13] 权限被拒绝
【发布时间】:2014-09-05 15:10:15
【问题描述】:

所以我知道有类似的问题,但它们并没有帮助我解决我的问题。

我正在尝试django-queued-storage,虽然我之前的文件上传工作正常,但现在我添加了[Errno 13] Permission denied: '/media/curriculum.pdf'

我尝试像这样设置我的媒体文件的权限:sudo chmod 777 -R media/(我知道它不好)和一堆其他权限提示,但没有任何运气。

知道如何解决这个问题吗?我正在使用带有 ubuntu 14.04 的流浪机器

这些是我的文件夹权限

vagrant@vagrant:/vagrant/media$ ls -latr
total 8
drwxrwxr-x 1 vagrant vagrant 4096 Jul 15 11:52 .
drwxrwxr-x 1 vagrant vagrant 4096 Jul 15 12:04

这是我的设置:

MEDIA_ROOT = '/media/'
STATIC_ROOT = '/static/'

STATIC_URL = S3_URL + STATIC_ROOT
MEDIA_URL = S3_URL + MEDIA_ROOT

还有我的模特:

queued_s3storage = QueuedStorage(
    'django.core.files.storage.FileSystemStorage',
    'storages.backends.s3boto.S3BotoStorage'
)

fulltext_pdf_file = models.FileField(null=True, blank=False, upload_to='.', storage=queued_s3storage)

【问题讨论】:

  • 你的 ls 命令显示 /vagrant/media,而不是 /media。您可能想在 /media 上执行 chmod 而不仅仅是媒体(可能是 /vagrant/media)。
  • @rje vagrant 是我项目的根文件夹。例如,如果我在其中执行ls -l,我会看到drwxrwxr-x 1 vagrant vagrant 4096 Jul 15 11:52 media,这是我将媒体文件上传到的文件夹。我在我的 vagrant 文件夹 a.k.a 项目根文件夹中做了sudo chmod 777 -R media/
  • 但错误显示“[Errno 13] Permission denied: '/media/curriculum.pdf'”指的是绝对路径 /media。显然这就是 Django 尝试保存文件的地方。也许您应该删除 MEDIA_ROOT 前面的斜线?
  • 感谢@rje,您为我指明了正确的方向。我的问题是MEDIA_URL

标签: python linux django ubuntu django-storage


【解决方案1】:

感谢@rje,我发现了问题。所以问题实际上出在配置中,我试图写入错误的文件夹。 所以解决方法是:

MEDIA_ROOT = 'media/'
MEDIA_URL = S3_URL + '/' + MEDIA_ROOT

【讨论】:

    猜你喜欢
    • 2021-01-17
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    • 2017-04-20
    • 2011-06-11
    • 2014-07-15
    相关资源
    最近更新 更多