use of im.actor.core.api.rpc.RequestGetFileUploadUrl 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();
});
}
Aggregations