【发布时间】:2015-12-15 23:08:27
【问题描述】:
我有一个系统,在将文件上传到 S3 后,Lambda 作业会引发队列消息,我使用它来维护 MySQL 表中的键列表。
我正在尝试根据我的表中的记录生成一个预签名的 URL。
我目前有两条记录
/41jQnjTkg/thumbnail.jpg
/41jQnjTkg/Artist+-+Song.mp3
使用生成预签名 URL:
var params = {
Bucket: bucket,
Expires: Settings.UrlGetTimeout,
Key: record
};
S3.getSignedUrl('getObject', params);
带有thumbnail.jpg 的URL 可以正常工作,但是带有+-+ 的URL 却失败了。本地磁盘上的原始文件名为“Artist - Song.mp3”。 S3 将空格替换为“+”。现在,当我使用 S3 使用的完全相同的文件名生成 URL 时,它不起作用;我从 S3 收到“指定的密钥不存在”错误。
我必须怎么做才能为所有文件名一致地生成 URL?
【问题讨论】:
标签: amazon-web-services amazon-s3