首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点AWS S3文件位置与某些字符的响应不相同

节点AWS S3文件位置与某些字符的响应不相同
EN

Stack Overflow用户
提问于 2021-06-07 22:20:56
回答 1查看 160关注 0票数 0

我有一个节点应用程序,可以使用它们的SDK将文件上传到AWS S3存储。

我有一个名为:File-type (14).csv的文件

我上传如下:

代码语言:javascript
复制
const AWS = require(`aws-sdk`)

const params = {
    Bucket: `MY_BUCKET`,
    Key: `path/File-type (4).csv`, 
    Body: fileContent
}
// Upload
new AWS.S3({/* config */})
.upload(params, (err, response) => {
   const location = response.Location
})

然后使用location常量将其存储在数据库中。但是这个链接不起作用,当我去AWS控制面板检查时,它会给它一个不同的链接。

代码语言:javascript
复制
From location: https://s3.amazonaws.com/bucket/path/File-type%20%281%29.csv
From AWS:      https://s3.amazonaws.com/bucket/path/File-type%2520%25281%2529.csv

请注意File-type后面的名称的不同

我已经在字符串上尝试过encodeURI (预上传,在params.Key上),但这不会删除(),因此仍然会产生错误。我可以做一个正则表达式来删除所有非alpha-数字值,但这感觉很麻烦,或者这是唯一的解决方案,还是我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-22 16:51:14

AWS有需要遵守的字符规则。他们不会告诉你或解决问题,并提供错误的链接。

在上传之前,您需要清理路径以避免“不接受”字符,这些字符可以在下面找到:

https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html

所以,在上传之前,一定要清理好你的路径。

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

https://stackoverflow.com/questions/67879314

复制
相关文章

相似问题

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