0
我一直在Android
OS正在與Azure
,我設法我的視頻文件(.MP4)上傳到我已經爲它準備的容器。Android操作系統 - 如何跟蹤Azure的上傳進度
- 容器的臨時密鑰
- 名字的地方,我要發送的文件
- 服務器URI :
我通過獲取Shared Access Signature (SAS)
第一,它爲我提供了這樣做
然後,我開始AsyncTask
使用「上傳」將文件發送到容器。
我檢查了容器和文件被上傳完美,對到底有沒有問題。
我的問題是關於上傳進度。有沒有可能跟蹤它?我想有一個上傳欄來提供更好的用戶體驗。
P.S - 我使用的是Azure Mobile SDK
這裏是我的代碼:
private void uploadFile(String filename){
mFileTransferInProgress = true;
try {
Log.d("Funky Stuff", "Blob Azure Config");
final String gFilename = filename;
File file = new File(filename); // File path
String blobUri = blobServerURL + sharedAccessSignature.replaceAll("\"", "");
StorageUri storage = new StorageUri(URI.create(blobUri));
CloudBlobClient blobCLient = new CloudBlobClient(storage);
//Container name here
CloudBlobContainer container = blobCLient.getContainerReference(blobContainer);
blob = container.getBlockBlobReference(file.getName());
//fileToByteConverter is a method to convert files to a byte[]
byte[] buffer = fileToByteConverter(file);
ByteArrayInputStream inputStream = new ByteArrayInputStream(buffer);
if (blob != null) {
new UploadFileToAzure().execute(inputStream);
}
} catch (StorageException e) {
Log.d("Funky Stuff", "StorageException: " + e.toString());
e.printStackTrace();
} catch (IOException e) {
Log.d("Funky Stuff", "IOException: " + e.toString());
e.printStackTrace();
} catch (Exception e) {
Log.d("Funky Stuff", "Exception: " + e.toString());
e.printStackTrace();
}
mFileTransferInProgress = false;
//TODO: Missing ProgressChanged method from AWS
}
private class UploadFileToAzure extends
AsyncTask <ByteArrayInputStream, Void, Void>
{
@Override
protected Void doInBackground(ByteArrayInputStream... params) {
try {
Log.d("Funky Stuff", "Entered UploadFileToAzure Async" + uploadEvent.mFilename);
//Method to upload, takes an InputStream and a size
blob.upload(params[0], params[0].available());
params[0].close();
} catch (StorageException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
謝謝!
沒錯多少字節的進展,那說得通!我會試一試!謝謝:d – GuilhermeM
不要忘記接受這個作爲答案,如果它的工作原理,因此也將幫助那些有同樣的問題 – Ansel
在這個任何更新的人嗎? –