一:上傳模型:http://img.blog.csdn.net/20150114183548277
二:普通客戶(hù)端上傳:http://lalalala.qiniudn.com/api/v6/img/normal-upload.png
三:上傳步驟:
(前提是下載qiniu-android-sdk-7.0.0.jar和android-async-http-1.4.6并導(dǎo)入項(xiàng)目)
上圖展示了普通客戶(hù)端直傳的基本流程梨树。具體步驟說(shuō)明如下:
? 1.應(yīng)用客戶(hù)端向應(yīng)用服務(wù)器請(qǐng)求上傳文件(在服務(wù)器端生成uploadToken)歧杏。通常吃引,應(yīng)用客戶(hù)端需要向應(yīng)用服務(wù)器發(fā)送資源名,空間名和deadline等參數(shù)由應(yīng)用服務(wù)器的業(yè)務(wù)邏輯確定搀捷;
? ? (1)這里注意一下bucket:七牛空間名稱(chēng)和deadline:uploadToken失效時(shí)間默怨,具體可查看一下官網(wǎng)上傳憑證介紹
uploadToken($flags)是自己封裝的用于生成上傳憑證的函數(shù)
? 2.應(yīng)用服務(wù)器構(gòu)造上傳策略樟氢;
? 3.應(yīng)用服務(wù)器將上傳策略序列化成json格式,對(duì)其實(shí)施簽名算法镇饺,得到上傳憑證乎莉;
? 4.應(yīng)用服務(wù)器將上傳憑證返回給應(yīng)用客戶(hù)端;
? 5.應(yīng)用客戶(hù)端構(gòu)造完整的上傳請(qǐng)求奸笤;
? 6.應(yīng)用客戶(hù)端發(fā)送上傳請(qǐng)求惋啃,啟動(dòng)上傳;
? 7.七牛云存儲(chǔ)執(zhí)行上傳操作监右,保存資源边灭。完成后反饋用戶(hù)相應(yīng)的信息。如果上傳失敗健盒,七牛云存儲(chǔ)將反饋用戶(hù)具體的失敗信息绒瘦。
四:文件上傳后的命名
android SDK七牛上傳文件之后文件名字是FizafHGoZISjKrJP這之類(lèi)的東西,怎么才能儲(chǔ)存成原來(lái)的文件名扣癣?
上傳時(shí)指定key椭坚。
文件上傳后的命名將遵循以下規(guī)則:
客戶(hù)端已指定Key,以Key命名搏色;
客戶(hù)端未指定Key善茎,上傳策略中設(shè)置了saveKey,以saveKey的格式命名频轿;
客戶(hù)端未指定Key垂涯,上傳策略中未設(shè)置saveKey,以文件hash(etag)命名航邢。