Ich verwende diese Methode, um einige Dateien auf Blob hochzuladen (einige Dateien sind groß und es dauert einige Minuten, um sie hochzuladen).Erhalten Sie Fortschritte während des Hochladens von Blobdateien auf Azure Android Storage SDK
private void updateFilesOnBlob(){
try {
String timestamp = Tools.generateTimeStamp();
// Retrieve storage account from connection-string.
CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
// Create the blob client.
CloudBlobClient blobClient = storageAccount.createCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.getContainerReference(CONTAINER_NAME);
// Upload each file on Blob
for (int i = 0; i< pathsArrayList.size(); i++) {
// Define the path to a local file.
final String filePath = pathsArrayList.get(i);
CloudBlockBlob blob = container.getBlockBlobReference(timestamp + "/" + filenameFromPath(pathsArrayList.get(i)));
File source = new File(filePath);
blob.upload(new FileInputStream(source), source.length());
}
}
catch (Exception e)
{
// Output the stack trace.
e.printStackTrace();
}
}
Wie Sie sehen können, verwende ich blob.upload()
Hochladen der Datei zu starten. Gibt es eine Möglichkeit, den Fortschrittsprozentsatz zu erhalten?
Natürlich, ich führe diese Methode in AsyncTask doInBackground
, so sollte es einfach sein, die Benutzeroberfläche in onProgressUpdate()
zu aktualisieren. Ich muss nur den Fortschritt des Hochladevorgangs wissen.