我正在尝试从S3的媒体目录下载文件。我有以下下载代码:
StackView 1
在设置中,我将MEDIA_ROOT设置如下:
def download_document(request, pk):
service = Service.objects.get(pk=pk)
file_path = os.path.join(settings.MEDIA_ROOT, service.pdf_file.name)
print(file_path)
file_mimetype = mimetypes.guess_type(file_path)
if os.path.exists(file_path):
with open(file_path, 'rb') as fh:
response = HttpResponse(fh.read(), content_type=file_mimetype)
response['Content-Disposition'] = 'inline; filename=' + os.path.basename(file_path)
return response
raise Http404
因此,当我在本地运行时,我将媒体存储在本地,但是当我在AWS上运行时,我将存储在S3存储桶中。它可以按照我在本地的预期工作,但是当我尝试应用s3存储桶时,我得到的文件不存在
答案 0 :(得分:1)
我要检查的第一件事是您是否实际上可以从S3匿名检索媒体文件以丢弃任何与权限相关的问题。使用curl或wget。
如果不能,那么您有两个选择: