gpt4 book ai didi

django - 如何使用 Heroku 上的 Django 将位于 URL 的图像保存到 S3?

转载 作者:行者123 更新时间:2023-12-02 22:00:29 25 4
gpt4 key购买 nike

我正在为一个托管在 Heroku 上的项目使用 django-storages。我配置了 django-storages,现在可以很好地从 S3 提供静态文件。

我想以编程方式获取位于 URL 的图像并将其上传到 S3 并将其与模型相关联。

我知道如何使用 urlib2 或 requests 从 url 下载文件。

我想知道的是如何最好地将图像上传到 S3 上,并让我可以将其用于我的模型和相关模板。文件大小不确定,但可能始终小于 10MB。

我的问题归结为:

  • 如何将位于 url 中的图像上传到 S3?
  • 一旦图像在 S3 上,我如何将该图像与模型相关联?
  • 由于 Heroku 的任何固有限制,有没有一种方法可以避免保存到 Heroku 存储并将文件直接“流”到 S3...或者这不是问题?

最佳答案

我有同样的问题,我用下面的方法保存图片

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

关于django - 如何使用 Heroku 上的 Django 将位于 URL 的图像保存到 S3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17029691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com