TFUploadAssistant上傳阿里云請求;或者其他云封裝;

TFUploadAssistant https://github.com/TimeFaceCoder/TFUploadAssistant

// 上傳阿里云請求;或者其他封裝;
TFUploadAssistant;

TFUploadAssistant 單例類;提供上傳操作的統(tǒng)一接口;


TFUploadOperationProtocol 定義上傳操作,協(xié)議接口;start方法開始上傳;


@interface TFAliUploadOperation : NSObject <TFUploadOperationProtocol> 
阿里云上傳實現(xiàn)

- (BOOL)objectExist:(NSString *)objectKey 檢查阿里云中是否存在!

start 中 調(diào)用 OSSPutObjectRequest請求上傳Object,



@interface TFUcloudUploadOperation : NSObject <TFUploadOperationProtocol>
Ucloud上傳實現(xiàn);



TFFileRecorder
上傳記錄持久化管理

里面使用EGOCache, 指定encode會對key進(jìn)行base64編碼;

對記錄進(jìn)行持久化,上傳成功自動刪除;上傳失敗會被重新上傳;

TFUploadHelper 中 在 defaultConfiguration 中設(shè)置 TFConfiguration;設(shè)置上傳類型,以及相應(yīng)的參數(shù);

調(diào)用[TFUploadAssistant sharedInstance] 的 setDefaultConfig配置;

[TFUploadAssistant sharedInstance] putData 上傳數(shù)據(jù),需要data,key等等;

// 響應(yīng)信息,
TFResponseInfo , 上傳成功回調(diào)TFUpCompletionHandler的參數(shù);

// 進(jìn)行參數(shù)檢查

  • (BOOL)checkAndNotifyError:(NSString *)key
    token:(NSString *)token
    input:(NSObject *)input
    complete:(TFUpCompletionHandler)completionHandler

// 上傳操作協(xié)議接口;
TFUploadOperationProtocol

封裝操作任務(wù),上傳完成回調(diào)、進(jìn)度回調(diào);啟動任務(wù);

阿里云、Ucloud接口實現(xiàn);

// 文件協(xié)議接口
TFFileProtocol
// 打開指定文件
@interface TFFile : NSObject<TFFileProtocol>

// 獲取文件屬性字典;文件大小、創(chuàng)建時間、修改時間
[[NSFileManager defaultManager] attributesOfItemAtPath:path error:&error2];

//[NSData dataWithContentsOfFile:filePath options:NSDataReadingMappedIfSafe error:&error] 不能用在大于 200M的文件上,改用filehandle

mimeType 文件類型

//
@interface TFPHAssetFile : NSObject<TFFileProtocol>

PHAsset 也有 創(chuàng)建時間、修改時間;

PHAsset 的類型 mediaType 有圖片、視頻、音頻;

PHAsset 相關(guān)操作,相當(dāng)于網(wǎng)絡(luò)請求;

fetchDataFromAsset 從PHAsset獲取NSData;

/**

  • 設(shè)置圖片壓縮率
  • @param quality 壓縮率 0 < q <= 1
    */
    compressionQuality

// 對大于4096的圖片進(jìn)行壓縮;

  • (NSData *)dataFromImage:(CGImageRef)imageRef metadata:(NSDictionary *)metadata mimetype:(NSString *)mimetype

(void) attachListener:(id<TFUploadAssistantDelegate>)listener token:(NSString *)token
TFUploadAssistant 中實現(xiàn)delegate、block兩種回調(diào)方式;
將delegate 保存在dic中uploadHandlers;使用token作為key;方面放的是數(shù)組array;
使用TFUploadHandler上傳;

// TFFile

NSFileHandle *f = nil;
NSData *d = nil;
//[NSData dataWithContentsOfFile:filePath options:NSDataReadingMappedIfSafe error:&error] 不能用在大于 200M的文件上,改用filehandle
// 參見 https://issues.apache.org/jira/browse/CB-5790

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • iOS開發(fā)系列--網(wǎng)絡(luò)開發(fā) 概覽 大部分應(yīng)用程序都或多或少會牽扯到網(wǎng)絡(luò)開發(fā),例如說新浪微博、微信等,這些應(yīng)用本身可...
    lichengjin閱讀 3,721評論 2 7
  • 218.241.181.202 wxhl60 123456 192.168.10.253 wxhl66 wxhl6...
    CYC666閱讀 1,439評論 0 6
  • #import//網(wǎng)絡(luò)請求的根路徑 #define rootPath @"http://jufeng.veyd.c...
    高喬人閱讀 950評論 0 1
  • .打開下載下來的demo,運行如下(其中紅色箭頭所指的文件是我們拖到項目中的兩個文件): 1678515-d4b8...
    Littleredguy閱讀 838評論 0 1
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,210評論 30 471