【发布时间】:2013-01-20 10:33:47
【问题描述】:
我正在使用 c# 为新资源创建共享访问签名(用户应具有创建权限以在我的存储帐户上创建新资源)。 MS 文档已过时,我似乎无法使用我浏览过的不同博客文章使其正常工作。
现在我的代码如下所示:
public static string GetBlobSharedAccessSignitureUrl(CloudBlobContainer container,string nameOfBlobToCreateSaSfor)
{
var blob = container.GetBlockBlobReference(nameOfBlobToCreateSaSfor);
var policy = new SharedAccessBlobPolicy
{
SharedAccessExpiryTime = DateTime.Now.AddHours(1),
Permissions = SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.Read
};
container.GetSharedAccessSignature(policy);
string sas = blob.GetSharedAccessSignature(policy);
return blob.Uri.AbsoluteUri + sas;
}
返回的 url(对于我的本地机器)看起来像这样(似乎是正确的)
http://127.0.0.1:10000/devstoreaccount1/photos/photos_4.jpg?sv=2012-02-12&se=2013-01-20T10%3A13%3A17Z&sr=b&sp=rw&sig=xxx
我启动了 Azure 存储模拟器并通过 fiddler 尝试 POST 到这个 URL(也尝试了 PUT)
我收到错误(404 或 400,取决于我尝试过的此功能的不同代码)
我需要做其他事情吗? (在旧示例中,我看到他们事先在该位置创建了一个资源 - 我也尝试过,但也没有工作......)
Azure SDK 版本为 2.0,因此 2012 年 10 月之前的 MS 博客文章(和其他教程)已损坏(同样根据 MS 开发博客 http://blogs.msdn.com/b/windowsazurestorage/archive/2012/10/29/windows-azure-storage-client-library-2-0-breaking-changes-amp-migration-guide.aspx)
任何帮助将不胜感激
【问题讨论】:
标签: c# azure azure-blob-storage