【发布时间】: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