Axi*_*xil 14 python django resize file-upload django-storage
我希望能够将上传的图像调整为各种尺寸类别:
并将其保存到AWS S3.后来才能访问它.一种策略是将其保存在filename_small.jpg,filename_medium.jpg中,有一个辅助函数,可以附加_small,_medium来访问这些文件.我不知道如何保存所有不同的文件(调整大小),然后使用帮助程序访问它.
https://gitlab.com/firdausmah/railercom/blob/master/railercomapp/storage_backends.py
class MediaStorage(S3Boto3Storage):
location = 'media'
file_overwrite = False
Run Code Online (Sandbox Code Playgroud)
https://gitlab.com/firdausmah/railercom/blob/master/railercomapp/models.py
class Employee(models.Model):
...
face_image = models.FileField(upload_to=upload_to('employee/face_image/'), blank=True, storage=MediaStorage())
Run Code Online (Sandbox Code Playgroud)
https://gitlab.com/firdausmah/railercom/blob/master/railercomapp/api.py
@api_view(['POST'])
def update_employee_image(request):
...
employee = Employee.objects.get(id = employee_id)
employee.face_image = face_image_obj
employee.save()
Run Code Online (Sandbox Code Playgroud)
我正在使用django-storages和S3Boto3Storage.我的完整工作项目是在git链接中.
sol*_*oke 10
根据您的用例,我建议使用与其一起使用的sorl-thumbnaildjango-storages并为您处理调整大小,这意味着您不必自己管理不同大小的工作.
您可以在要使用它们的位置定义缩略图大小,而不是定义用于存储图像的特定文件大小,例如,
{% thumbnail item.image "300" crop="center" as im %}
<img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}
Run Code Online (Sandbox Code Playgroud)
这将生成最大宽度为300px的缩略图,该缩略图将在第一次生成并保存在s3上.
该应用程序具有低级API,如果您需要在模板上下文之外生成和获取缩略图,则可以使用该API:
from sorl.thumbnail import get_thumbnail
im = get_thumbnail(my_file, '100x100', crop='center', quality=99)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
946 次 |
| 最近记录: |