首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API网关中的分块透传

API网关中的分块透传
EN

Stack Overflow用户
提问于 2016-12-02 22:55:32
回答 2查看 544关注 0票数 1

我有一个web应用程序,它接受多部分/表单数据,并设置了api网关来传递对它的请求。然而,任何时候我上传图片作为表单的一部分,它们最终都会比我上传的原始文件大,并被损坏。如果我在不通过AWS API网关的情况下执行相同的方法,则图像上传正常。你知道我这里漏掉了什么吗?

下面是我读取flask中的表单数据的S3代码:

代码语言:javascript
复制
    f = request.files['attachment']
    fp = StringIO(f.read())
    file_uuid = str(uuid.uuid4())
    bucketkey.key = "att_%s%s" % (file_uuid, file_extension(f.filename))
    bucketkey.set_contents_from_file(fp)

我会附加一个链接到一个样本jpg,这是损坏的,如果有用的话。

https://s3.eu-central-1.amazonaws.com/agendacommunities/att_ef7375b1-bb19-4df9-9162-5582ed66797c.jpeg

EN

回答 2

Stack Overflow用户

发布于 2016-12-03 05:11:04

您使用StringIO的目的是什么?f.read()将为您提供字节,而不是字符串。我认为你可以将f直接传递给set_contents_from_file,它将从f读取。

代码语言:javascript
复制
f = request.files['attachment']
file_uuid = str(uuid.uuid4())
bucketkey.key = "att_%s%s" % (file_uuid, file_extension(f.filename))
bucketkey.set_contents_from_file(f)
票数 1
EN

Stack Overflow用户

发布于 2016-12-06 01:25:47

您需要为您的数据设置content-type头部,以便API网关将其识别为二进制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40935036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档