如何更改blob访问策略?
目前,我可以使用azure quick Start创建一些测试blob。这很好用,但在我的例子中,Blob的公共访问级别默认为private。我想将公共访问级别从Private(无匿名访问)设置为Blob(仅对Blob进行匿名读取访问)。
public static void main( String[] args ) throws IOException
{
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectionString).buildClient();
String containerName = "testblobs"+ UUID.randomUUID();
BlobSignedIdentifier identifier = new BlobSignedIdentifier()
.setId("name")
.setAccessPolicy(new BlobAccessPolicy()
.setStartsOn(OffsetDateTime.now())
.setExpiresOn(OffsetDateTime.now().plusDays(1))
.setPermissions("permissionString")); //what should I put here?
BlobContainerClient containerClient = blobServiceClient.createBlobContainer(containerName);
try {
containerClient.setAccessPolicy(PublicAccessType.CONTAINER, Collections.singletonList(identifier));
System.out.println("Set Access Policy to 'Public read access for blobs only'.");
} catch (UnsupportedOperationException err) {
System.out.printf("Set Access Policy failed because: %s\n", err);
}
String localPath = "pathtofile";
String fileName = "myfile.bpmn";
File localFile = new File(localPath+fileName);
BlobClient blobClient = containerClient.getBlobClient(fileName);
System.out.println("\nUploading to Blob storage as blob:\n\t" + blobClient.getBlobUrl());
blobClient.uploadFromFile(localPath + fileName);
System.out.println("\nListing da blobs...");
for (BlobItem blobItem : containerClient.listBlobs()) {
System.out.println();
System.out.println("\t" + blobItem.getName());
}
}
当我运行这段代码时,它将引发以下异常,我认为这是因为.setPermissions(“PermissionString”)
没有正确设置。
异常StackTrace:
通过一些代码示例向我解释.setPermissions(“PermissionString”)
如何为Blob设置公共访问权限的任何帮助都将非常有用。
适用于blob容器的权限定义为此处
。
根据希望包含在访问策略中的权限,您可以从以下一个或多个权限中进行选择:读取(r)
、添加(a)
、创建(c)
、写入(w)
、删除(d)
和列表(l)
。
请注意,这些权限的排序是很重要的。它们必须遵循以下顺序:racwdl
。
还要注意,在共享访问策略中指定权限是可选的,因此您也可以保留权限字符串为空。
我正在通过adal节点库使用microsoft登录验证我的网页的用户。 adal-node有一个,我们可以使用
我曾经能够使用v11 Azure SDK API在Blob上创建共享访问签名,如下所示: 我想使用最新的v12。NET API,它似乎用BlobServiceClient取代了CloudBlobClient,用BlobContainerClient取代了CloudBlobContainer,用BlobClient取代了CloudBlockBlob。 但是,在实例上可用的方法在实例上不可用。 问题
在HDInsight集群上,使用CREATE外部语句创建配置单元表: 然后更改一些现有的文件,将一些文件添加到CREATE语句中提到的Azure Blob容器中。 一个新的配置单元查询是否考虑对Blob容器所做的更改,同时将数据再次加载到配置单元表?
我正在尝试从Azure函数访问存储帐户。但是在尝试检索文件时收到403错误。我看不出为什么会出现此错误有任何问题。 让我解释一下设置。 1-Azure function app位于美国东部2-Azure blob位于中南部3-Azure blob启用了防火墙(我已启用Azure服务可以访问)4-我还将function app的IP列入了白名单。(properties virtual IP)5-Az
我们正在开发几个部署到Azure Function Apps的Quarkus(在撰写本文时为2.5.4)应用程序。 我们注意到,我们所有的日志,无论代码的严重性如何,都在应用洞察中显示为信息。 我们已将 jboss 日志管理器添加到依赖项中: 当我检查日志时,它显示为这样。 2022-02-24T07:58:14.325[Information] 2022-02-24T07:58:14.308[I
我正在使用Azure Databricks中的spark解析Azure blob存储中的文件。blob作为DBFS挂载。现在我在笔记本上使用硬编码文件名(dbfs文件名)。但是每当创建新blob时,我希望用新的dbfs名称触发笔记本。我检查了使用Azure函数我可以得到一个blob触发器。我可以从Azure函数启动databricks笔记本/作业吗?对blob的操作需要相当长的时间。在这种情况下使