我有一个Web应用程序,它接受multipart / form-data并设置了api网关来传递请求。但是,每当我上传图像作为表单的一部分时,它们最终会比我上传和损坏的原始文件大。如果我在不通过AWS API网关的情况下执行相同的方法,则图像上传很好。我在这里缺少什么想法?
以下是我的S3代码,它读取烧瓶中的表格数据:
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,如果它有用的话会被破坏。
答案 0 :(得分:1)
您对StringIO的意图是什么? f.read()将为您提供字节,而不是字符串。我想你可以直接将f传递给set_contents_from_file,它将从f。
读取export function saveUser (data, user) {
let username = data.username
return ref.child(`users/${user.uid}/info`)
.set({
email: user.email,
firstname: data.firstName,
lastname: data.lastName,
admin: false,
// for /users/<username>
username: username,
uid: user.uid
})
.then(() => user)
}
答案 1 :(得分:0)
您需要将数据的内容类型标头设置为由API网关识别为二进制。