Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django s3存储桶中的图像上载时间过长_Django_Python 3.x_Amazon S3_Django Rest Framework_Boto3 - Fatal编程技术网

Django s3存储桶中的图像上载时间过长

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

我必须在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,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秒。您也可以尝试升级软件包,这可能会有所帮助。。