【发布时间】:2016-05-27 08:49:12
【问题描述】:
我从这个 github 得到这个代码:azure-storage-ios/BlobSample/ 我能够创建我的容器并向其中添加 blob。我确认他们在天蓝色的门户中。我正在使用 SAS 令牌方法:
var containerURL = "https://<mystorage>.blob.core.windows.net/profiles?se=2016-09-05T00%3A00%3A00Z&sp=rw&sv=2015-02-21&sr=c&sig=<mysig>"
var usingSAS = true
self.container = AZSCloudBlobContainer(url: NSURL(string: containerURL)!, error: &error)
// ... later:
blob.uploadFromText(textTextField.text ?? "", completionHandler: { (error: NSError?) -> Void in
})
但现在,我正在尝试加载 blob,但收到一个或多个错误!
func reloadBlobList() {
self.container.listBlobsSegmentedWithContinuationToken(nil, prefix: nil, useFlatBlobListing: true, blobListingDetails: AZSBlobListingDetails.All, maxResults: 50) { (error : NSError?, results : AZSBlobResultSegment?) -> Void in
if let error = error {
print("error code! \(error.code)")
print("error description! \(error.description)")
}
我主要收到关于 AuthorizationPermissionMismatch 的错误
错误代码! 3 错误描述!错误域 = com.Microsoft.AzureStorage.ErrorDomain 代码 = 3 "(null)" UserInfo = {代码 = AuthorizationPermissionMismatch, AdditionalErrorDetails = { }, rawErrorData={length = 279, capacity = 279, bytes = 0xefbbbf3c3f786d6c2076657273696f6e ... 3c2f4572726f723e}, OperationContext=, RequestResult=, HTTP 状态码=403, URLResponse= { URL: https://.blob.core.windows。 net/profiles?sig=&api-version=2015-04-05&sp=rw&se=2016-09-05T00%3A00%3A00Z&sv=2015-02-21&sr=c&restype=container&comp=list&maxresults=50&include=snapshots,metadata,uncommittedblobs,copy } {状态码:403,标题{ “内容长度”= 279; “内容类型”=“应用程序/xml”; 日期 =“格林威治标准时间 2016 年 5 月 27 日星期五 08:12:19”; 服务器 = "Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0"; “x-ms-request-id”=“90746e2f-0001-0114-7eef-b7be1e000000”; “x-ms-版本”=“2015-04-05”; } }, Message=此请求无权使用此权限执行此操作。 RequestId:90746e2f-0001-0114-7eef-b
我之前生成的密钥具有 r/w 权限,并且我能够将 blob 发布到容器中,我还应该为检索做些什么?
【问题讨论】: