亞馬遜SDK資源上傳功能的實(shí)現(xiàn)

因?yàn)楣緲I(yè)務(wù)的原因,新的APP使用白山云存儲(chǔ)上傳圖片視頻資源,而白山云移動(dòng)端存儲(chǔ)功能的實(shí)現(xiàn)依賴亞馬遜的SDK粱年,下面就簡(jiǎn)單介紹一下使用亞馬遜SDK上傳圖片
AmazonSDK地址

首先導(dǎo)入AmazonSDK

69636E35-EA72-4738-9CD6-C69B87E6EBC0.png

然后在application:didFinishLaunchingWithOptions方法里設(shè)置好SDK的配置

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    ...
    [self configAWS]; 
    ...
    return YES;
}

配置上傳需要的參數(shù):

- (void)configAWS {
    AWSEndpoint *EndPoint = [[AWSEndpoint alloc] initWithURLString:END_POINT];
    
    AWSBasicSessionCredentialsProvider *provider =
    [[AWSBasicSessionCredentialsProvider alloc] initWithAccessKey:ACCESS_KEY
                                                        secretKey:SECRET_KEY
                                                     sessionToken:@"latest"];
    //如果有identityPoolId,可以使用identityPoolId設(shè)置
    //AWSCognitoCredentialsProvider *provider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:POOL_ID];
    
    AWSServiceConfiguration *configuration =
    [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1
                                           endpoint:EndPoint
                                credentialsProvider:provider];
    
    AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
}

上傳實(shí)現(xiàn):

+ (void)updateImageWithImage:(UIImage *)image completion:(void (^)(NSString *))completion {
    
    CGFloat width = image.size.width;
    CGFloat height = image.size.height; 
    
    NSString *fileName = [[[NSProcessInfo processInfo] globallyUniqueString] stringByAppendingString:@".png"];
    
    NSString *filePath = [self saveToFilePathWithImage:image name:fileName];
    
    
    __weak NSString *weakFileName = fileName;
    
    id(^ContinuationBlock)(AWSTask *task) = ^id(AWSTask *task) {
        if (task.error) {
            [SVProgressHUD showErrorWithStatus:@"上傳失敗"];
            if (completion) {
                completion(nil);
            }
        }
        else {
            __strong NSString *strongFileName = weakFileName;
            //上傳成功并不返回url,訪問(wèn)資源需要使用AmazonSDK解碼粟焊,可以在上傳的時(shí)候設(shè)置成可讀寫,然后用拼接出來(lái)的url訪問(wèn)圖片
            NSString *url = [[@"http:/ /....com" stringByAppendingPathComponent:BUCKET_NAME] stringByAppendingPathComponent:strongFileName];
            url = [url stringByReplacingOccurrencesOfString:@" " withString:@""];
            if (completion) {
                completion(url);
            }
        }
        
        return nil;
    };
    
    AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];
    uploadRequest.body = [NSURL fileURLWithPath:filePath];
    uploadRequest.key = fileName;
    
    uploadRequest.bucket = @"your bucket name(這里填你的bucketname)";
    // 設(shè)置成可讀寫的孙蒙,才可以使用拼接的url
    uploadRequest.ACL = AWSS3ObjectCannedACLPublicReadWrite;
    
    
    AWSS3TransferManager *transferManager = [AWSS3TransferManager defaultS3TransferManager];
    
    [[transferManager upload:uploadRequest] continueWithBlock:ContinuationBlock];
}

+ (NSString *)saveToFilePathWithImage:(UIImage *)image
                                 name:(NSString *)name {
    NSString *filePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"upload"];
    NSFileManager *manager = [NSFileManager defaultManager];
    if (![manager fileExistsAtPath:filePath]) {
        [manager createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];
    }
    filePath = [filePath stringByAppendingPathComponent:name];
    NSData * imageData = UIImagePNGRepresentation(image);
    [imageData writeToFile:filePath atomically:YES];
    
    return filePath;
}

這樣就能實(shí)現(xiàn)上傳功能了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末项棠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挎峦,更是在濱河造成了極大的恐慌香追,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坦胶,死亡現(xiàn)場(chǎng)離奇詭異透典,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)顿苇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門掷匠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人岖圈,你說(shuō)我怎么就攤上這事讹语。” “怎么了蜂科?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵顽决,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我导匣,道長(zhǎng)才菠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任贡定,我火速辦了婚禮赋访,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己蚓耽,他們只是感情好渠牲,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著步悠,像睡著了一般签杈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鼎兽,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天答姥,我揣著相機(jī)與錄音,去河邊找鬼谚咬。 笑死鹦付,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的择卦。 我是一名探鬼主播睁壁,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼互捌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起行剂,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤秕噪,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后厚宰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腌巾,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年铲觉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了澈蝙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡撵幽,死狀恐怖灯荧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情盐杂,我是刑警寧澤逗载,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站链烈,受9級(jí)特大地震影響厉斟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜强衡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一擦秽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦感挥、人聲如沸缩搅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)誉己。三九已至,卻和暖如春域蜗,著一層夾襖步出監(jiān)牢的瞬間巨双,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工霉祸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筑累,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓丝蹭,卻偏偏與公主長(zhǎng)得像慢宗,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奔穿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 歲月的長(zhǎng)風(fēng)穿過(guò)你纖細(xì)的手指 世俗的枷鎖鎖住那扇沉重的門 邁不出的腳步碾碎了多少心事 云層沒(méi)有溫度的漂浮著 天空毫無(wú)...
    落寒殘雪閱讀 217評(píng)論 0 2
  • 出師未捷先染病镜沽,點(diǎn)點(diǎn)滴滴皆心血。 身不由己志未酬贱田,心有不甘又奈何缅茉? 鵬程萬(wàn)里鴻鵠志,夢(mèng)里回首樂(lè)其中男摧。 待到新生到來(lái)...
    破繭成碟閱讀 286評(píng)論 0 2
  • 今天是新開這個(gè)賬號(hào)的第一天耗拓。 以前的賬號(hào)全部注銷拇颅,算是一個(gè)新開始。 不知帶著怎樣的心情去做這樣一件事乔询,但我確信它于...
    嚶其鳴閱讀 270評(píng)論 0 0
  • (1) 在A大打完籃球賽后樟插,韓晨就立馬打了個(gè)電話給韓雪兒告訴她——他要讀A大的決定。 韓雪兒說(shuō)她明天抽個(gè)時(shí)間來(lái)B市...
    逆風(fēng)飛翔的風(fēng)箏閱讀 469評(píng)論 0 12