如何解决在添加 blob 之前是否需要预先创建容器?
在 Azure 函数中,我正在保存收到的文件。将根据租户使用不同的容器。
var location = Helper.GetLocation(tenant,uploadId,...);
using (var outputStream = await binder.BindAsync<Stream>(new BlobAttribute(location,FileAccess.Write)))
{
await inputStream.CopyToAsync(outputStream);
}
我需要预先创建这些容器吗? (我正在使用 ARM 模板创建一些)。我的测试表明我不必这样做,但我不确定我是否可以依靠它。如果我可以依靠为我创建的容器,我就不必在添加新租户时修改 ARM 模板。
解决方法
是的,您可以为此使用 Binder。我有一个关于 on GitHub 的完整示例。只是相关的部分:
{{1}},
我需要预先创建这些容器吗? (我正在创建一些使用 ARM 模板)。我的测试表明我没有必要,但我不确定我 可以依靠这个。
我认为您可以信赖这一点。 BlobAttribute 写入操作基于 Microsoft.Azure.WebJobs.Extensions.Storage
。此 SDK 有一个名为 CreateIfNotExistsAsync()
的方法。这个方法会检查是否有你想要的特定容器,如果有,它会返回容器对象,如果没有,它会创建一个容器并返回容器对象。
你可以看看这个源代码页面来检查逻辑:
(其实不光是blob属性,Cosmos DB等很多Azure服务也有CreateIfNotExists方法,本意是为了避免麻烦。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。