我有一个表单,用户可以上传任何名称的任何文件。稍后,我需要将此名称显示为下载链接。我一直被困在文件名包含"空格"等字符的情况下。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中相应的字符。