Azure存储专用映像Url



我有一个iOS应用程序,可以在那里上传图像并在新闻推送中查看。目前,我正在使用Azure的存储系统,对我来说,使用共享访问签名注册并下载Blob是没有问题的。但我不想每次都下载它们,相反,我想有一个可以显示的网址。我所做的是:

AZSCloudBlobContainer *blobContainer = [[AZSCloudBlobContainer alloc] initWithUrl:[NSURL URLWithString:@"SASURL"]];
AZSCloudBlockBlob *blockBlob = [blobContainer blockBlobReferenceFromName:@"bla"];
[blockBlob downloadToDataWithCompletionHandler:^(NSError *error, NSData *data) {
    if (error) {
        NSLog(@"Error in downloading blob");
    }
    else{
        UIImage *image = [[UIImage alloc]initWithData:data];
    }
}];

我想做的是:

NSURL *url = [NSURL URLWithString:@"SASURL"];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *img = [[UIImage alloc] initWithData:data cache:YES];

基本上,我只需要一个能在浏览器中显示图像的sasurl。或者换句话说,我每次都必须下载Blob,我希望有类似bloburl+sas的东西可以直接访问它们,而无需下载它们。也许这是不可能的,这就是我问的原因?

您不能限制谁可以使用基于SAS的blob URI。然而:私有blob URI,除非共享,否则其他人无法发现(除非纯属巧合)。

为了限制暴露,您可以在URI链接上设置一个短时间限制(例如,10分钟)。在这一点上,即使链接破坏,暴露窗口也会很小。

SAS生成几乎是微不足道的,因此您应该能够从应用程序的服务层

(或在手机应用程序本身中)实时生成基于SAS的URL,供手机应用程序使用。

相关内容

最新更新