无法访问子目录中的 blob 文件
Can't access the blob file in sub directory
Azure blob 存储中没有子容器(目录)。我只是在文件名中使用斜线来拥有虚拟子目录。
这里是例子。
http://apolyonstorage.blob.core.windows.net/banners/Local/Homepage/index.html
容器名称:横幅
文件名:Local/Homepage/index.html
我上传文件并在 Azure 门户上访问它,但只是访问 link 失败,告诉我找不到资源,但它实际上存在。
为什么我在浏览器上通过 link 访问它时失败?
blob 容器上的 ACL 是什么?对于可以通过 URL 直接访问的 blob(或者换句话说匿名访问,blob 容器的 ACL 应该是 Blob
或 Public
。
您可以使用下面的示例代码更改容器的 ACL:
CloudStorageAccount account = new CloudStorageAccount(new StorageCredentials(StorageAccount, StorageAccountKey), true);
CloudBlobClient blobClient = account.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("your-container-name");
BlobContainerPermissions permissions = new BlobContainerPermissions()
{
PublicAccess = BlobContainerPublicAccessType.Blob,//Or BlobContainerPublicAccessType.Container
};
container.SetPermissions(permissions);
Azure blob 存储中没有子容器(目录)。我只是在文件名中使用斜线来拥有虚拟子目录。
这里是例子。
http://apolyonstorage.blob.core.windows.net/banners/Local/Homepage/index.html
容器名称:横幅
文件名:Local/Homepage/index.html
我上传文件并在 Azure 门户上访问它,但只是访问 link 失败,告诉我找不到资源,但它实际上存在。
为什么我在浏览器上通过 link 访问它时失败?
blob 容器上的 ACL 是什么?对于可以通过 URL 直接访问的 blob(或者换句话说匿名访问,blob 容器的 ACL 应该是 Blob
或 Public
。
您可以使用下面的示例代码更改容器的 ACL:
CloudStorageAccount account = new CloudStorageAccount(new StorageCredentials(StorageAccount, StorageAccountKey), true);
CloudBlobClient blobClient = account.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("your-container-name");
BlobContainerPermissions permissions = new BlobContainerPermissions()
{
PublicAccess = BlobContainerPublicAccessType.Blob,//Or BlobContainerPublicAccessType.Container
};
container.SetPermissions(permissions);