use of im.actor.runtime.Log in project actor-platform by actorapp.
the class UploadTask method preStart.
@Override
public void preStart() {
// Storage.isAlreadyInTemp(descriptor);
alreadyInTemp = false;
isWriteToDestProvider = Storage.isFsPersistent() && !alreadyInTemp;
srcReference = Storage.fileFromDescriptor(descriptor);
if (srcReference == null) {
if (LOG) {
Log.d(TAG, "Error during file reference creating");
}
reportError();
return;
}
if (isWriteToDestProvider) {
destReference = Storage.createTempFile();
if (destReference == null) {
if (LOG) {
Log.w(TAG, "Error during file dest reference creating");
}
reportError();
return;
}
}
srcReference.openRead().flatMap(f -> {
inputFile = f;
if (isWriteToDestProvider) {
return destReference.openWrite(srcReference.getSize());
} else {
return Promise.success(null);
}
}).flatMap(f -> {
outputFile = f;
crc32 = new CRC32();
blocksCount = srcReference.getSize() / blockSize;
if (srcReference.getSize() % blockSize != 0) {
blocksCount++;
}
if (LOG) {
Log.d(TAG, "Starting uploading " + blocksCount + " blocks");
Log.d(TAG, "Requesting upload config...");
}
return api(new RequestGetFileUploadUrl(srcReference.getSize()));
}).then(r -> {
if (LOG) {
Log.d(TAG, "Upload config loaded");
}
uploadConfig = r.getUploadKey();
checkQueue();
}).failure(e -> {
if (LOG) {
Log.w(TAG, "Error during initialization of upload");
}
reportError();
});
}
use of im.actor.runtime.Log in project actor-platform by actorapp.
the class UploadTask method uploadPart.
private void uploadPart(final int blockIndex, final byte[] data, final int attempt) {
api(new RequestGetFileUploadPartUrl(blockIndex, blockSize, uploadConfig)).flatMap(r -> HTTP.putMethod(r.getUrl(), data)).then(r -> {
if (LOG) {
Log.d(TAG, "Block #" + blockIndex + " uploaded");
}
uploadCount--;
uploaded++;
reportProgress(uploaded / (float) blocksCount);
checkQueue();
}).failure(e -> {
if (e instanceof HTTPError) {
HTTPError httpError = (HTTPError) e;
if ((httpError.getErrorCode() >= 500 && httpError.getErrorCode() < 600) || httpError.getErrorCode() == 0) {
// Is Server Error or unknown error
int retryInSecs = DEFAULT_RETRY;
if (LOG) {
Log.w(TAG, "Block #" + blockIndex + " upload error #" + httpError.getErrorCode() + " trying again in " + retryInSecs + " sec, attempt #" + (attempt + 1));
}
schedule(new Retry(blockIndex, data, attempt + 1), retryInSecs * 1000L);
return;
}
if (LOG) {
Log.w(TAG, "Block #" + blockIndex + " upload failure");
}
reportError();
}
});
}
Aggregations