iOS 阿里云多圖上傳

阿里云圖片上傳的基本思路:

1抵怎、選擇圖片

2翩活、將圖片保存在本地,同時返回圖片路徑便贵、并生成縮略圖用于 UI 顯示菠镇。

3、上傳圖片承璃,成功后將步驟 2 中的圖片名傳給服務器利耍。

單張圖片上傳的例子官方的 demo 中已經(jīng)有了,這里直接上多圖上傳盔粹。

具體實現(xiàn)是結合 NSOperationQueue隘梨,設置 operation 間的依賴來實現(xiàn)多圖上傳。

這里省略步驟 1舷嗡、2 轴猎,直接上傳圖片:

+ (void)uploadImages:(NSArray<UIImage *> *)images isAsync:(BOOL)isAsync complete:(void(^)(NSArray<NSString *> *names, UploadImageState state))complete
{
    id<OSSCredentialProvider> credential = [[OSSPlainTextAKSKPairCredentialProvider alloc] initWithPlainTextAccessKey:AccessKey                                                                                                            secretKey:SecretKey];
    
    OSSClient *client = [[OSSClient alloc] initWithEndpoint:AliYunHost credentialProvider:credential];
    
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    queue.maxConcurrentOperationCount = images.count;
    
    NSMutableArray *callBackNames = [NSMutableArray array];
    int i = 0;
    for (UIImage *image in images) {
        if (image) {
            NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
                //任務執(zhí)行
                OSSPutObjectRequest * put = [OSSPutObjectRequest new];
                put.bucketName = BucketName;
                NSString *imageName = [kTempFolder stringByAppendingPathComponent:[[NSUUID UUID].UUIDString stringByAppendingString:@".jpg"]];
                put.objectKey = imageName;
                [callBackNames addObject:imageName];
                NSData *data = UIImageJPEGRepresentation(image, 0.3);
                put.uploadingData = data;
                
                OSSTask * putTask = [client putObject:put];
                [putTask waitUntilFinished]; // 阻塞直到上傳完成
                if (!putTask.error) {
                    NSLog(@"upload object success!");
                } else {
                    NSLog(@"upload object failed, error: %@" , putTask.error);
                }
                if (isAsync) {
                    if (image == images.lastObject) {
                        NSLog(@"upload object finished!");
                        if (complete) {
                            complete([NSArray arrayWithArray:callBackNames] ,UploadImageSuccess);
                        }
                    }
                }
            }];
            if (queue.operations.count != 0) {
                [operation addDependency:queue.operations.lastObject];
            }
            [queue addOperation:operation];
        }
        i++;
    }
    if (!isAsync) {
        [queue waitUntilAllOperationsAreFinished];
        NSLog(@"haha");
        if (complete) {
            if (complete) {
                complete([NSArray arrayWithArray:callBackNames], UploadImageSuccess);
            }
        }
    }
}
Screen Shot 2016-05-31 at 10.09.02 PM.png

根據(jù)返回的地址可以 bucketName + aliYunHost + 地址 在瀏覽器中直接訪問了。
例如 bucketName = "my-bucket"; aliYunHost = "http://oss-cn-shenzhen.aliyuncs.com/"; 返回圖片地址 = "temp/69058506-679B-432C-AD11-61A34C067235.jpg";

那么可以通過 “my-bucket.oss-cn-shenzhen.aliyuncs.com/temp/69058506-679B-432C-AD11-61A34C067235.jpg” 直接在瀏覽器中進行訪問

demo: https://github.com/Xigtun/OSSImageUploader

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末进萄,一起剝皮案震驚了整個濱河市捻脖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌中鼠,老刑警劉巖可婶,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異援雇,居然都是意外死亡矛渴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門惫搏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來具温,“玉大人,你說我怎么就攤上這事筐赔∠承桑” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵川陆,是天一觀的道長剂习。 經(jīng)常有香客問我蛮位,道長,這世上最難降的妖魔是什么鳞绕? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任失仁,我火速辦了婚禮,結果婚禮上们何,老公的妹妹穿的比我還像新娘萄焦。我一直安慰自己,他們只是感情好冤竹,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布拂封。 她就那樣靜靜地躺著,像睡著了一般鹦蠕。 火紅的嫁衣襯著肌膚如雪冒签。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天钟病,我揣著相機與錄音萧恕,去河邊找鬼。 笑死肠阱,一個胖子當著我的面吹牛票唆,可吹牛的內容都是我干的。 我是一名探鬼主播屹徘,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼走趋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了噪伊?” 一聲冷哼從身側響起簿煌,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酥宴,沒想到半個月后啦吧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡拙寡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了琳水。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片肆糕。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖在孝,靈堂內的尸體忽然破棺而出诚啃,到底是詐尸還是另有隱情,我是刑警寧澤私沮,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布始赎,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏造垛。R本人自食惡果不足惜魔招,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望五辽。 院中可真熱鬧办斑,春花似錦、人聲如沸杆逗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽罪郊。三九已至蠕蚜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悔橄,已是汗流浹背靶累。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留橄维,地道東北人尺铣。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像争舞,于是被迫代替她去往敵國和親凛忿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內容