我正在为Heroku上托管的项目使用django-storage。我已经配置了django-storage,现在正在为S3提供静态文件。
我想以编程方式获取位于URL的图像并将其上传到S3并将其与模型相关联。
我知道如何使用urlib2或者请求从网址下载文件。
我想知道的是如何最好地将该图像放到S3上并让我可以使用我的模型和相关模板。文件大小不确定,但可能总是小于10MB。
我的问题归结为:
答案 0 :(得分:3)
我遇到了同样的问题,我使用以下方法保存图像
from boto.s3.key import Key
import urllib2
import StringIO
from django.conf import settings
def save_image_s3(self, img_url, img_name):
"""Saves the image in img_url into S3 with the name img_name"""
conn = boto.connect_s3(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY)
bucket = conn.get_bucket(settings.AWS_STORAGE_BUCKET_NAME)
k = Key(bucket)
k.key = img_name
fp = StringIO.StringIO(urllib2.urlopen(img_url).read())
k.set_contents_from_file(fp)
return img_name