我正在开发一个 Java 应用程序,它使用 Account SAS(共享访问签名)URI 执行以下方法:
CLoudBlockBlob blob = container.getBlockBlobReference("tmp/test.json");
blob.exists();
blob.openInputStream();
blob.delete();
container.exists();
container.listBlobs().iterator().next();
container.getDirectoryReference("tmp/").listBlobs().iterator().next()
但是,我找不到生成单个帐户 SAS 以支持上面列出的所有方法的方法。
- 使用 SharedAccessAccountResourceType.OBJECT 生成的帐户 SAS:
成功执行:
CLoudBlockBlob blob = container.getBlockBlobReference("tmp/test.json");
blob.exists();
blob.openInputStream();
blob.delete();
失败并显示错误代码:AuthorizationResourceTypeMismatch
container.exists();
container.listBlobs().iterator().next();
container.getDirectoryReference("tmp/").listBlobs().iterator().next()
- 使用 SharedAccessAccountResourceType.CONTAINER 生成的帐户 SAS:
成功执行:
container.exists();
container.listBlobs().iterator().next();
container.getDirectoryReference("tmp/").listBlobs().iterator().next()
失败并显示错误代码:AuthorizationResourceTypeMismatch
CLoudBlockBlob blob = container.getBlockBlobReference("tmp/test.json");
blob.exists();
blob.openInputStream();
blob.delete();
- 使用 SharedAccessAccountResourceType.SERVICE 生成的帐户 SAS 失败并显示错误代码:上述所有方法的 AuthorizationResourceTypeMismatch。
有没有办法生成适用于以下所有方法的单个帐户 SAS?
CLoudBlockBlob blob = container.getBlockBlobReference("tmp/test.json");
blob.exists();
blob.openInputStream();
blob.delete();
container.exists();
container.listBlobs().iterator().next();
container.getDirectoryReference("tmp/").listBlobs().iterator().next()