我使用Azure云blob来提供图像。有时我需要使图像暂时不可用(即有人报告图像),之后可能会恢复或删除它。我如何实现这一目标?
我的容器是公开的:
container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
这就是我制作blob的方式:
CloudBlockBlob block_blob = ImagesContainer.GetBlockBlobReference(blob_name);
block_blob.Properties.ContentType = file.ContentType;
block_blob.Properties.CacheControl = "public, max-age=2592000"; // 30 days
block_blob.UploadFromStream(file.InputStream);
是否有类似的东西:
block_blob.Properties.AccessType = private; block_blob.SetProperties();
这样我才能让所有人都无法使用它?后来我可以通过将属性设置为“public”来恢复它。我找不到与此用法相关的任何属性。
非常感谢。
答案 0 :(得分:0)
在公共容器中无法执行此操作。我建议将blob复制到私有容器,然后将其从公共容器中删除,然后只要您想再次使用它,就可以将其复制回来。即使对于大型文件,在单个存储帐户中的两个容器之间使用复制Blob API(http://msdn.microsoft.com/en-us/library/azure/dd894037.aspx)也会非常非常快。