Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从Django管理员上传到S3_Python_Django_Amazon Web Services_Amazon S3 - Fatal编程技术网

Python 从Django管理员上传到S3

Python 从Django管理员上传到S3,python,django,amazon-web-services,amazon-s3,Python,Django,Amazon Web Services,Amazon S3,我的django应用程序设置为使用S3,使用storages和boto。使用collectstatic,我能够将我的静态资产移动到S3。但是,我还需要存储从Django Admin上传到S3的图像文件 我使用了来自的django-s3direct包。我能够正确地设置它,并且上传似乎工作正常。但是,在加载模板时,不会提供上载的图像 My Settings.py: STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' AWS_

我的django应用程序设置为使用S3,使用
storages
boto
。使用
collectstatic
,我能够将我的静态资产移动到S3。但是,我还需要存储从Django Admin上传到S3的图像文件

我使用了来自的django-s3direct包。我能够正确地设置它,并且上传似乎工作正常。但是,在加载模板时,不会提供上载的图像

My Settings.py:

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

AWS_ACCESS_KEY_ID = 'ACCESS_KEY'

AWS_SECRET_ACCESS_KEY = 'SECRET_KEY'

AWS_STORAGE_BUCKET_NAME = 'bucketname'

S3DIRECT_ENDPOINT = 's3.amazonaws.com'  # http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
S3DIRECT_DIR = 's3direct'  # (optional, default is 's3direct', location within the bucket to upload files)
S3DIRECT_UNIQUE_RENAME = False # (optional, default is 'False', gives the uploaded file a unique filename)
Models.py:

class BannerAds(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=255)
    phone = models.BigIntegerField(max_length=20)
    image = S3DirectField(upload_to='s3direct')

如果文件正在上载,则您的设置不应存在问题。尝试在django管理员中检查您的权限,确保您已授予自己编辑该模型的权限

app name | BannerAds | Can change banner ads 

你需要做的是设置媒体文件,包括上传

有几种方法可以做到这一点,我用过

除此之外,您还必须更改URL.py:

urlpatterns = [
...
] + + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
是的,您还必须为
MEDIA\u ROOT
添加一个设置


但最重要的是媒体文件,用谷歌搜索它,然后你就可以开始了。

在模板中,使用Inspect元素找出页面试图为图像加载的内容。这与S3存储桶中图像的实际路径相比如何?它使用的是旧路径,即
/dynamic/img
。您是否设置了
默认文件存储
?啊,我没有。我该怎么做呢?应该是评论