基於騰訊雲COS 對大檔案斷點續傳的實現

2021-09-24 03:18:33 字數 2246 閱讀 8123

最後還是使用分塊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表示成功,具體參照文件手冊 ...