これを保存すると、画像のサイズを変更しようとしています。具体的には、私のイメージはAmazon S3の上に格納されている は、その後、私はそのような次のようにアクセスもURLを持つ、Amazon S3の画像(サムネイル)のサイズ変更 - Django
画像が保存されるが、これは私のAmazon S3バケットに格納されdjango-storages
とboto3
サードパーティ製のアプリケーションを使用します。
class UploadStudyOffer(models.Model):
study_offer = models.ForeignKey(StudiesOffert, related_name='uploadsstudyoffer')
image = models.ImageField(upload_to=get_image_path)
# images folder per object
def save(self, *args, **kwargs):
super(UploadStudyOffer, self).save(*args, **kwargs)
# We first check to make sure an image exists
if self.image:
# Open image and check their size
image = Image.open(self.image)
i_width, i_height = image.size
max_size = (100,100)
# We resize the image if it's too large
if i_width > 1000:
image.thumbnail(max_size, Image.ANTIALIAS)
image.save(self.image.path)
私は画像をアップロードすると、私はこのメッセージを得る:
保存した画像のサイズを変更するコードはこれです
Exception Type: NotImplementedError at /host/study-offer/algoritmos-para-ensenanza/edit/images/
Exception Value: This backend doesn't support absolute paths.
とエラーがstorages
またはboto
バックエンドで、またはPillow
で管理されている場合、私は、わかりません。
image.save(self.image.path)
へ:
image.save(self.image.name)
そして
私はセクションコードを変更: はその後Pillow
のレベルで私は、次のように、の瞬間に次のオプションは、画像を保存しましたこのエラーが発生する:
File "/home/bgarcial/workspace/hostayni_platform/hosts/models.py" in save
542. image.save(self.image.name) #[Errno 2] No such file or directory: 'studyoffer_images/ingenieria-de-sistemas/15061122523583.jpg'
File "/home/bgarcial/.virtualenvs/hostayni/lib/python3.6/site-packages/PIL/Image.py" in save
1725. fp = builtins.open(filename, "w+b")
Exception Type: FileNotFoundError at /host/study-offer/algoritmos-para-ensenanza/edit/images/
Exception Value: [Errno 2] No such file or directory: 'studyoffer_images/algoritmos-para-ensenanza/1900-X-1080-Wallpapers-022.jpg'
もちろん、私のイメージ
私は
image.save(self.image.url)
に
image.save(self.image.name)
を変更し、私はこれを取得:OMアマゾンS3はなく、ローカルに私のプロジェクトやハードディスクで、その後、私はこの方法のurl
パラメータを使用して保存されていますエラー:
Exception Type: FileNotFoundError at /host/study-offer/algoritmos-para-ensenanza/edit/images/
Exception Value: [Errno 2] No such file or directory: 'https://s3-sa-east-1.amazonaws.com/ihost-project/media/studyoffer_images/algoritmos-para-ensenanza/15061122523583.jpg'
アマゾンのs3イメージURLの取得は動作しません。彼URLが有効なURL https://s3-sa-east-1.amazonaws.com/ihost-project/media/studyoffer_images/algoritmos-para-ensenanza/15061122523583.jpg
ですその後、私はに
image.save(self.image.url)
を変更:
image.save(self.image.file)
そして、私のイメージがエラーなしでアップロードされますが、リサイズされていないと、元の形式としてアップロードされます。
アプリケーションからアップロードした画像を処理する方法とその結果はAmazon S3で使用後に保存されましたか?
あなたが試すことができ'image = Image.open(self.image)'の代わりに 'image = Image.open(self.image.path)'を実行してください。保存方法を変更しないでください – ruddra
@ruddra推奨事項に感謝しますが、同じ状況が私に起こります:) – bgarcial