node.js aws-sdk访问S3目录,名称中带有空格

问题描述

我正在尝试访问目录名称assets/storage/media/Hybrid LED Bulb/replace-icon.png的S3中的对象

但是,当我尝试在我的node.js代码中访问它时,它将使用此路径assets/storage/media/Hybrid%20LED%20Bulb/replace-icon.png

我试图用encodeURI()来包装它,但是这个使它assets/storage/media/Hybrid%2520LED%2520Bulb/replace-icon.mobile.png

在node.js中处理此问题的正确方法是什么?

解决方法

我知道在某些情况下,空格由function freq(char: char; username : String): Integer; var i,auxfreq: Integer; begin auxfreq:= 0; for i:= 1 to length(username) do if char = username[i] then auxfreq:= auxfreq + 1; //writeln(freq); freq:= auxfreq; end; function OddUserName(username : String): Boolean; var usernameaux : String; length_usernameaux,i : Integer; Result : Boolean; begin Result:= false; usernameaux:= username; i:= 0; repeat i +=1; length_usernameaux:= length(usernameaux); if freq(usernameaux[i],usernameaux) <> 1 then delete(usernameaux,i,1); until i = length_usernameaux; // length(usernameaux) is supposed to be the number of the distinct characters. {if length(usernameaux) mod 2 <> 0 then // you will have to ignore this. Result:= true; // odd} //writeln(usernameaux); //writeln(length(usernameaux)); OddUserName:= Result; // ignore this too end; 代替。在将S3键/路径参数移交给函数之前,请尝试替换空格。我没有测试过,但认为值得一试。

,

decodeURI(uri)帮助解决了我的问题。