【发布时间】:2020-02-07 03:26:57
【问题描述】:
我正在尝试将 excel 文件上传到 S3 并通过签名 URL 下载。我注意到该对象以不同的文件类型返回,而不是预期的 xlsx 类型,因此在本地不可读。
我有两个 lambda,一个用于上传对象,另一个用于检索签名 URL。
上传:
async function () => {
const s3 = new aws.S3({ signatureVersion: 'v4' })
const params = {
Bucket: bucket,
Key: key
}
try {
const signedURL = await s3.getSignedUrl('getObject', params)
return response(200, signedURL)
} catch (err) {
console.log(JSON.stringify(err))
return response(400, err)
}
}
GetSignedURL:
async function () => {
const s3 = new aws.S3({ signatureVersion: 'v4' })
const params = {
Bucket: bucket,
Key: key
}
try {
const signedURL = await s3.getSignedUrl('putObject', params)
return response(200, { signedURL, key })
} catch (err) {
return response(400, err)
}
}
我猜该文件实际上并没有以其原始文件类型保存,而 S3 实际上只是将其转换为文本文件。也许我需要一个额外的参数或包来明确地将其保存为 Excel 文件。请让我知道你的想法!
【问题讨论】:
标签: javascript amazon-web-services amazon-s3 aws-lambda