【问题标题】:Python upload image to AWS - Image becomes black / corruptedPython 将图像上传到 AWS - 图像变黑/损坏
【发布时间】:2017-11-25 10:15:09
【问题描述】:

我正在尝试将图像作为 base64 字符串或图像上传到 AWS,但上传后图像损坏/变黑。

for item in os.listdir(os.path.join(app.config['UPLOAD_FOLDER'])):
    if item.startswith(str(current_user.id)):
        with open(os.path.join(app.config['UPLOAD_FOLDER'], item)) as thefile:
            data = base64.b64encode(thefile.read())
            upload_image_to_aws_from_image_v3('MYBUCKET', "userimg/", data, new_zimmer, "hauptbild", new_zimmer.stadt, new_zimmer.id)

AWS的方法:

def upload_image_to_aws_from_image_v3(bucketname, bucketpath, image_from_form, model_to_change, model_column, model_addon_for_name, model_addon_for_name_id):

    s3 = boto.connect_s3(app.config['MY_AWS_ID'], app.config['MY_AWS_SECRET'], host='s3.eu-central-1.amazonaws.com')

    bucket_name = bucketname
    bucket = s3.get_bucket(bucket_name)
    k = Key(bucket)

    #file_contents = image_from_form.read()

    the_filename = "zimmer-" + model_addon_for_name.lower().strip() + str(model_addon_for_name_id) + ".jpg" 

    filename_hauptbild = secure_filename(the_filename)    

    k.key = bucketpath + filename_hauptbild  

    k.set_contents_from_string(image_from_form)

    setattr(model_to_change, model_column, filename_hauptbild)

【问题讨论】:

    标签: python amazon-web-services base64 image-upload


    【解决方案1】:

    尝试以下方法,看看是否能得到更好的结果:

    import boto
    
    def upload_image_to_aws_from_image_v3(bucketname, bucketpath, image_from_form, model_to_change, model_column, model_addon_for_name, model_addon_for_name_id):
    
        s3 = boto.connect_s3(app.config['MY_AWS_ID'], app.config['MY_AWS_SECRET'], host='s3.eu-central-1.amazonaws.com')
        bucket = s3.get_bucket(bucket_name)
    
        the_filename = "zimmer-" + model_addon_for_name.lower().strip() + str(model_addon_for_name_id) + ".jpg"
    
        filename_hauptbild = secure_filename(the_filename)
    
        k = bucket.new_key(key_name)
        k.set_contents_from_string(image_from_form)
        k.set_contents_from_filename(path_to_file)
        return k
    

    【讨论】:

      猜你喜欢
      • 2020-04-15
      • 2020-02-02
      • 2015-11-14
      • 1970-01-01
      • 2022-08-13
      • 1970-01-01
      • 2020-01-09
      • 2016-04-14
      • 2021-03-15
      相关资源
      最近更新 更多