使用 AWS S3 的 Django-Oscar 正确保存图像
Django-Oscar with AWS S3 save images correctly
我正在使用 django-oscar
和来自 storages
S3BotoStorage
库的 S3 存储。我的静态文件存储在我的 s3 存储桶中:
STATIC_URL = "https://s3.amazonaws.com/<my_bucket_name>/static/"
当我 运行 python manage.py collectstatic
时,这些已成功收集,所以我知道我的 S3 权限设置正确。
我的 MEDIA_URL
设置为:
MEDIA_URL = "https://s3.amazonaws.com/<my_bucket_name>/media/"
当我 运行 python manage.py oscar_import_catalogue_images
时,图像被保存到我的 S3 存储桶中,然而,它们被放置在:
<bucket_name>/images/products/2016/02/<image_file>
虽然它们保存在这里,但它们在我的网站上没有正确呈现。
图像呈现为空白 <div>
,用引号括起大片空白。
如何才能正确渲染图像,并sorl
从 S3 图像正确生成缩略图?
根据我的初步研究,我必须以某种方式编辑 utils.py Importer
class 以更改目录。但我不确定这对它们的呈现方式有帮助。有人遇到过这个问题吗?
问题是我使用的 Python 图片库 (PIL) 版本不支持我的图片格式。在我 pip uninstall
编辑 PIL
之后,我添加了必要的支持库,然后重新安装了 PIL
。这解决了问题。
我正在使用 django-oscar
和来自 storages
S3BotoStorage
库的 S3 存储。我的静态文件存储在我的 s3 存储桶中:
STATIC_URL = "https://s3.amazonaws.com/<my_bucket_name>/static/"
当我 运行 python manage.py collectstatic
时,这些已成功收集,所以我知道我的 S3 权限设置正确。
我的 MEDIA_URL
设置为:
MEDIA_URL = "https://s3.amazonaws.com/<my_bucket_name>/media/"
当我 运行 python manage.py oscar_import_catalogue_images
时,图像被保存到我的 S3 存储桶中,然而,它们被放置在:
<bucket_name>/images/products/2016/02/<image_file>
虽然它们保存在这里,但它们在我的网站上没有正确呈现。
图像呈现为空白 <div>
,用引号括起大片空白。
如何才能正确渲染图像,并sorl
从 S3 图像正确生成缩略图?
根据我的初步研究,我必须以某种方式编辑 utils.py Importer
class 以更改目录。但我不确定这对它们的呈现方式有帮助。有人遇到过这个问题吗?
问题是我使用的 Python 图片库 (PIL) 版本不支持我的图片格式。在我 pip uninstall
编辑 PIL
之后,我添加了必要的支持库,然后重新安装了 PIL
。这解决了问题。