AWS s3 javascript sdk:文件密钥编码空格为%20任何方法来解决这个使用端点参数?



我有一个表单,用户可以上传任何名称的任何文件。稍后,我需要将此名称显示为下载链接。我一直被困在文件名包含"空格"等字符的情况下。AWS将空间替换为"%20"这是一个糟糕的用户体验。

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

我用以下参数上传s3.upload(uploadParams, function(err, data) {

const uploadParams = {
Bucket: req.params.bucketname,
Key: req.headers.filepath,
Body: ""
};

并使用以下参数下载s3.getObject(bucketParams, function(err, data) {

const bucketParams = {
Bucket: req.params.bucketname,
Key: req.headers.filepath,
};

我是AWS的新手,我不确定最好的方法是什么。我试过使用Content-Disposition,但它似乎没有做任何事情。

我的下一个选项是将文件名存储在我的数据库与fileURL一起,所以当我得到fileBody时,我将使用我以前存储的文件名显示它。

使用内置的javascript函数decodeURIComponent(string)。它将所有%xx编码转换为utf-8中相应的字符。

最新更新