阿裏雲 oss 文件下載進度顯示
阿新 • • 發佈:2017-06-07
dsm result request exc fin sys pop 通過 -s
思路是:第一獲取要下載文件的大小,設為X,第二通過多線程監測已下載文件的大小,設為Y。Y/x就是下載的進度。關鍵代碼例如以下
//獲取要下載的object的metadata ObjectMetadata tmpMetadata = client.getObjectMetadata(bucketName, key); final long filesize = tmpMetadata.getContentLength(); final File downloadFile = new File(filename); Thread t = new Thread(new Runnable() { @Override public void run() { while(true){ try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(downloadFile.getName()+"下載的進度為:"+ (float)downloadFile.length()*100/filesize); if(downloadFile.length()==filesize) break; } } }); t.start(); //下載object ObjectMetadata result =client.getObject(new GetObjectRequest(bucketName, key),downloadFile);
阿裏雲 oss 文件下載進度顯示