Django s3存储桶中的图像上载时间过长
我必须在django项目的s3 bucket中上传图像。我使用boto3来执行以下操作:Django s3存储桶中的图像上载时间过长,django,python-3.x,amazon-s3,django-rest-framework,boto3,Django,Python 3.x,Amazon S3,Django Rest Framework,Boto3,我必须在django项目的s3 bucket中上传图像。我使用boto3来执行以下操作: def handle_uploaded_file(file, filename): s3 = boto3.resource('s3', aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY) check = s3.Bucket(bucket).put_object(Key=filename, Body=file,Cont
def handle_uploaded_file(file, filename):
s3 = boto3.resource('s3', aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY)
check = s3.Bucket(bucket).put_object(Key=filename, Body=file,ContentType='image/png',ACL='public-read')
return check
我在API中调用此函数,如下所示:
if request.FILES and request.FILES.get('tagimage', None) is not None:
tagimage = request.FILES['tagimage']
tagimage_name = tagimage.name
number = number_genarator()
tagimage_name = str(number) + tagimage_name
tag_upload = handle_uploaded_file(tagimage,tagimage_name)
res['tagimage']=tag_upload
record.tagimage = tagimage_name
但我认为这个过程花的时间太长了。要上传一张图片,除了API的另一部分所需的时间外,我需要三秒的时间。
有人能建议一种更快的上传图像的方法吗?结果表明,问题是由于我为我的bucket选择的区域。一旦我将桶区域更改为更接近我的物理位置,API响应时间逐渐减少到不到1秒。这是我第一次使用AWS服务,我想有了这样的经验,我会更好地了解他们 你的图片有多大?@Taek我想上传的图片是以kbs为单位的。甚至连mbs都没有!视图的哪一部分占用了大部分时间?是否处理上传的文件?你能用@Taek之类的东西来确认一下吗?我照你说的做了,上传图像的时间差是3.60秒。我的API没有上传图像需要1秒。然后它必须来自您的网络,完全相同的功能需要大约1秒。您也可以尝试升级软件包,这可能会有所帮助。。