Django 排队存储 [Errno 13] 权限被拒绝

1 投票
1 回答
820 浏览
提问于 2025-04-18 13:23

我知道有类似的问题,但那些并没有帮我解决我的困扰。

我正在尝试使用 django-queued-storage,之前我的文件上传都很顺利,但现在加上这个之后,我遇到了一个错误:[Errno 13] Permission denied: '/media/curriculum.pdf'

我试着用这个命令来设置我的媒体文件权限:sudo chmod 777 -R media/(我知道这样做不好),还有其他一些权限设置的方法,但都没有成功。

有没有人知道我该怎么解决这个问题?我在使用一个装有 Ubuntu 14.04 的 Vagrant 虚拟机。

这是我的文件夹权限:

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)

1 个回答

0

感谢@rje,我找到了问题。其实问题出在我的设置上,我试图写入错误的文件夹。解决办法是:

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

撰写回答