相关疑难解决方法(0)

Flask 将图像上传到 S3 而不将其保存到本地文件系统

我需要将用户提交的照片上传到 s3 存储桶。但是我不断收到以下错误:

TypeError: expected str, bytes or os.PathLike object, not FileStorage
Run Code Online (Sandbox Code Playgroud)

我如何能够将文件存储为字符串/字节而不是 FileStorage?相关代码如下:

@user_api.route('upload-profile-photo', methods=['PUT'])
@Auth.auth_required
def upload_profile_photo():
  """
  Upload User Profile Photo
  """
  key = Auth.auth_user()
  bucket = 'profile-photos'
  content_type = request.mimetype
  image_file = request.files['file']
  client = boto3.client('s3',
                        region_name='sfo2',
                        endpoint_url='https://example.xxx.amazonaws.com',
                        aws_access_key_id=os.environ['ACCESS_KEY'],
                        aws_secret_access_key=os.environ['SECRET_KEY'])
  with open(image_file, "rb") as f:
    client.upload_fileobj(
        bucket,
        f,
        key,
        ExtraArgs={'ACL': 'public-read', 'ContentType': content_type}
    )

  return custom_response({'message': 'image uploaded'}, 200)
Run Code Online (Sandbox Code Playgroud)

flask boto3

2
推荐指数
1
解决办法
4495
查看次数

标签 统计

boto3 ×1

flask ×1