Kri*_*isF 7 django amazon-s3 boto python-imaging-library
为了在上传时调整图像大小(使用PIL),我正在覆盖我的文章模型的保存方法,如下所示:
def save(self):
super(Article, self).save()
if self.image:
size = (160, 160)
image = Image.open(self.image)
image.thumbnail(size, Image.ANTIALIAS)
image.save(self.image.path)
Run Code Online (Sandbox Code Playgroud)
这在本地工作但在生产中我得到一个错误:NotImplementedError:这个后端不支持绝对路径.
我尝试用.替换image.save行
image.save(self.image.url)
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个IOError:[Errno 2]没有这样的文件或目录:' https : //my_bucket_name.s3.amazonaws.com/article/article_images/2.jpg '
这是图像的正确位置.如果我将该地址放在浏览器中,则图像就在那里.我尝试了很多其他的东西,但到目前为止,没有运气.
你应该尽量避免保存到绝对路径; 有一个File Storage API可以为您提取这些类型的操作.
查看PIL文档,看起来该save()函数支持传递类文件对象而不是路径.
我不在我可以测试此代码的环境中,但我相信你需要做这样的事情而不是你的最后一行:
from django.core.files.storage import default_storage as storage
fh = storage.open(self.image.name, "w")
format = 'png' # You need to set the correct image format here
image.save(fh, format)
fh.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3602 次 |
| 最近记录: |