最後還是使用分塊api 實現的,具體實現如下:
大檔案上傳
/**
* 初始化分塊上傳
** @param bucketname 桶名
* @param key key
* @return
*/private string initiatemultipartupload(string bucketname, string key, string storageclass) else else
}string uploadid = null;
try catch (cosserviceexception e)
return uploadid;
}
public static string uploadpart(string path, file file)
// 分塊上傳
batchupload(uploadid, strings.get(i), partsize, i + 1, key, false);
}} catch (ioexception | interruptedexception e)
cosclient.shutdown();
jsonobject jsonobject = new jsonobject();
jsonobject.put("uploadid", uploadid);
jsonobject.put("key", key);
jsonobject.put("piecesum", batch);
return jsonobject.tostring();
}
/**
* 拆分檔案
** @param filename 待拆分的完整檔名
* @param bytesize 按多少位元組大小拆分
* @return 拆分後的檔名列表
* @throws ioexception
*/public listsplitbysize(string filename, int bytesize)
throws ioexception
return parts;
}/** * 分割處理runnable
** @author [email protected]
*/private class splitrunnable implements runnable
public void run() catch (ioexception e)
}}
/**
* 分塊上傳
*/private static void batchupload(string uploadid, string path, long partsize,
integer partnumber, string key, boolean islastpart) catch (cosserviceexception e) catch (cosclientexception e) catch (ioexception e)
}
之後的斷點續傳就簡單了,同樣的對檔案進行拆分然後上傳就可以了
/**
* 斷點續傳
*/public static string continueupload(file file, string uploadid, string key)
// 遍歷所有分塊
for (int i = 1; i <= batch; i++) else }}
} catch (ioexception | interruptedexception e)
cosclient.shutdown();
jsonobject jsonobject = new jsonobject();
jsonobject.put("uploadid", uploadid);
jsonobject.put("key", key);
jsonobject.put("piecesum", batch);
return jsonobject.tostring();
}
分塊上傳困擾了我三天,最後終於是解決了,第一次寫文章,寫的不好請見諒;(上面**為我測試時使用的**,一些地方寫的不規範,使用時請根據**進行修改) Laravel使用騰訊雲COS服務
第二步 因為使用這個桶我們需要兩個金鑰 雲 api 金鑰 secretid,雲 api 金鑰 secretkey 所以我們得再去申請這兩個金鑰 在 filesystems.php中修改 default cosv5 namespace use qcloud cos client class cosco...
騰訊雲 COS 物件儲存 簡單檔案上傳筆記
cos 物件儲存 簡單檔案上傳 com.qcloud cos api 5.6.24 我使用的是cos的本地檔案上傳方式,前端傳來的檔案資料是 multipartfile 型別的,但是cos在接收本地檔案上傳時接收的檔案資料型別是 file 因此需要先轉一下並生成乙個臨時的本地檔案 生成在伺服器端 因...
騰訊雲cos物件儲存服務檔案上傳api就是乙個大坑
一 介紹 二 cos 檔案上傳api原始碼 單個檔案上傳,適用於小檔案 param bucketname bucket名稱 param remotepath 遠端檔案路徑 param localpath 本地檔案路徑 return 伺服器端返回的操作結果,成員code為0表示成功,具體參照文件手冊 ...