Python 从Django管理员上传到S3
我的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_
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
。您是否设置了默认文件存储
?啊,我没有。我该怎么做呢?应该是评论