相关疑难解决方法(0)

如何在浏览器上打开blob而不通过java服务下载?

我正在创建一个应用程序,我需要在浏览器中查看 blob 而不是下载它们。目前,具有令牌的 blob 链接会下载相应的 blob。

我在这里得到了一些在浏览器中查看 blob 的参考: https://github.com/Azure-Samples/storage-blob-java-getting-started/blob/master/src/BlobBasics.java (从第 141 行开始查看)

这是我创建令牌的代码:

@Test
    public String testBlobSaS(CloudBlob blob, CloudBlobContainer container) throws InvalidKeyException,
            IllegalArgumentException, StorageException, URISyntaxException, InterruptedException {
        SharedAccessBlobPolicy sp = createSharedAccessBlobPolicy(
                EnumSet.of(SharedAccessBlobPermissions.READ, SharedAccessBlobPermissions.LIST), 100);
        BlobContainerPermissions perms = new BlobContainerPermissions();
        perms.getSharedAccessPolicies().put("readperm", sp);
        perms.setPublicAccess(BlobContainerPublicAccessType.CONTAINER);
        container.uploadPermissions(perms);
        String sas = blob.generateSharedAccessSignature(sp, null);
        CloudBlockBlob sasBlob = new CloudBlockBlob(
                new URI(blob.getUri().toString() + "?" + blob.generateSharedAccessSignature(null, "readperm")));
        sasBlob.download(new ByteArrayOutputStream());
        CloudBlob blobFromUri = new CloudBlockBlob(
                PathUtility.addToQuery(blob.getStorageUri(), blob.generateSharedAccessSignature(null, "readperm")));
        assertEquals(StorageCredentialsSharedAccessSignature.class.toString(),
                blobFromUri.getServiceClient().getCredentials().getClass().toString());
        StorageCredentials creds = new StorageCredentialsSharedAccessSignature(
                blob.generateSharedAccessSignature(null, "readperm")); …
Run Code Online (Sandbox Code Playgroud)

java logic azure

3
推荐指数
1
解决办法
4911
查看次数

标签 统计

azure ×1

java ×1

logic ×1