如何通过更改Azure存储blob中URL的文件名来防止SAS URL用于其他文件

jfewjypa  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(129)

我正在为每个成功上载到Azure存储帐户的Blob生成SAS令牌,并且能够使用URL在浏览器中查看文件。但当我更改URL中的文件名时,我能够使用相同令牌查看另一个文件。
我们怎样才能防止这种情况发生而不添加唯一标识符?
先谢谢你!
这是我正在做的,为每个成功上传生成SAS令牌.

String signedPermissions = "r"; //read and list
String signedService = "b";  //blob
String signedResType = "sco";  //service, container, objects
String startTimeString = (dateFormat.format(start));
String expiryTimeString = (dateFormat.format(expiry));
String signedIp = "";
String protocol = "https";
String signedVersion = "2017-07-29";

 String sas = 
                    "sv="+signedVersion +
                    "&ss="+signedService +
                    "&srt="+signedResType + 
                    "&sp="+signedPermissions +
                    "&st="+ URLEncoder.encode(startTimeString, "UTF-8") +
                    "&se="+ URLEncoder.encode(expiryTimeString, "UTF-8") +
                    "&spr="+protocol+
                    "&sig="+ URLEncoder.encode(signature,"UTF-8");
sg3maiej

sg3maiej1#

您看到此行为的原因是因为您正在创建一个对存储帐户中的所有blob都有效的Account SAS
您需要做的是为一个特定的blob创建一个Service SAS,一旦完成,您将只使用该blob的SAS URL。

相关问题