我有一個系統,在文件上傳到S3之後,Lambda作業產生一個隊列消息,我用它來維護MySQL表中的密鑰列表。S3生成簽名URL時的URL編碼
我想根據我的表中的記錄生成預先簽名的URL。
我有兩個記錄當前
/41jQnjTkg/thumbnail.jpg
/41jQnjTkg/Artist+-+Song.mp3
使用預先生成簽名網址:
var params = {
Bucket: bucket,
Expires: Settings.UrlGetTimeout,
Key: record
};
S3.getSignedUrl('getObject', params);
與thumbnail.jpg
工作完全正常的URL,但一個與+-+
失敗。本地磁盤上的原始文件名是「Artist - Song.mp3」。 S3用空格替換了'+'。現在,當我使用S3使用的完全相同的文件名生成URL時,它不起作用; S3出現「Specified Key does not exist」錯誤。
我必須做什麼才能爲所有文件名一致地生成URL?
是的,我應該糾正我的問題。我使用S3事件來生成SQS消息,我正在捕獲應用程序和處理。 – Koder