美文网首页
关于App端使用微软云的一点笔记

关于App端使用微软云的一点笔记

作者: 陈藩 | 来源:发表于2022-01-15 10:16 被阅读0次

1.创建一个存储账户
2.开发文档 https://docs.microsoft.com/zh-cn/azure/storage/blobs/storage-ios-how-to-use-blob-storage

存储之间的关系是 :在存储账户中创建容器,在容器中创建blob。
账户包含容器,容器中包含blob,blob中包含 上传的内容

创建容器时候容器名必须小写

配置连接字符串的作用,相当于配置文件:
a.连接到存储模拟器
b.访问存储账户
c.访问指定资源

查看配置文件的网址如下所示(后面的"xufei",是我自己在账户中创建的):
https://renmin.blob.core.windows.net/xufei/

上传的图片无法在浏览器查看,是因为没有读取的权限,修改容器的权限为读取权限就行了

以下是上传图片到微软云的代码:

//注意这里的connectionStr 很重要,在账户中可以找到,
//一定是https,否则会报错。
NSString *connectionStr = @"DefaultEndpointsProtocol=https;AccountName=renmin;AccountKey=n0yVC/XguvDfvE4k3dIFWOnhNH85aEYnEjlrNKPkSoFPj5IOzd0H47yfiRuhM7WMTxF9fD6MMdfrcxoCBXAK+A==";
NSError *error = nil;
AZSCloudStorageAccount *account = [AZSCloudStorageAccount accountFromConnectionString:connectionStr error:&error];

AZSCloudBlobClient *blobClient = [account getBlobClient];
blobClient.defaultRequestOptions.serverTimeout = 30.0;

NSString *containerName = @"xufei";
AZSCloudBlobContainer *blobContainer = [blobClient containerReferenceFromName:containerName];

[blobContainer createContainerIfNotExistsWithCompletionHandler:^(NSError* error,BOOL ret){
        NSLog(@"Error in creating container ==== %@",error);
        
        NSDate *date = [NSDate date];
        NSInteger timeInterval = (NSInteger)[date timeIntervalSince1970];
        
        NSString *imageName = @"";
        if ( isCover == true) {
            imageName = [NSString stringWithFormat:@"%ld.small.jpg",(long)timeInterval];
        }else{
            imageName = [NSString stringWithFormat:@"%ld.jpg",(long)timeInterval];
        }
    
        AZSCloudBlockBlob *blockBlob = [blobContainer blockBlobReferenceFromName:imageName];
        blockBlob.properties.contentType = @"image/jpeg";
        
        [blockBlob uploadFromData:data completionHandler:^(NSError * error) {
            if (error != nil) {
                 //NSLog(@"error === %@",error);
                if (complete) {
                    complete(@"",error);
                }
            }else{
               //将以下的imageUrl放在浏览器上是可以显示和下载的,下载之后是一张图片,如果不是图片修改存储器的权限为读写权限就好了。
              NSString *newImageUrl = [NSString stringWithFormat:@"%@%@",@"https://renmin.blob.core.windows.net/xufei/",imageName];
                if (complete) {
                    complete(newImageUrl,nil);
                }
             }
        }];
}];

相关文章

网友评论

      本文标题:关于App端使用微软云的一点笔记

      本文链接:https://www.haomeiwen.com/subject/qnrthrtx.html