我正在为每个成功上载到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");
1条答案
按热度按时间sg3maiej1#
您看到此行为的原因是因为您正在创建一个对存储帐户中的所有blob都有效的
Account SAS
。您需要做的是为一个特定的blob创建一个
Service SAS
,一旦完成,您将只使用该blob的SAS URL。