Search in sources :

Example 1 with OutputFile

use of im.actor.runtime.files.OutputFile 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();
    });
}
Also used : ModuleContext(im.actor.core.modules.ModuleContext) ActorCancellable(im.actor.runtime.actors.ActorCancellable) ResponseGetFileUploadUrl(im.actor.core.api.rpc.ResponseGetFileUploadUrl) ResponseCommitFileUpload(im.actor.core.api.rpc.ResponseCommitFileUpload) Promise(im.actor.runtime.promise.Promise) OutputFile(im.actor.runtime.files.OutputFile) RpcException(im.actor.core.network.RpcException) Storage(im.actor.runtime.Storage) ModuleActor(im.actor.core.modules.ModuleActor) RequestCommitFileUpload(im.actor.core.api.rpc.RequestCommitFileUpload) RequestGetFileUploadUrl(im.actor.core.api.rpc.RequestGetFileUploadUrl) HTTPResponse(im.actor.runtime.http.HTTPResponse) FileReference(im.actor.core.entity.FileReference) FileSystemReference(im.actor.runtime.files.FileSystemReference) InputFile(im.actor.runtime.files.InputFile) RpcCallback(im.actor.core.network.RpcCallback) ActorRef(im.actor.runtime.actors.ActorRef) Log(im.actor.runtime.Log) HTTP(im.actor.runtime.HTTP) HTTPError(im.actor.runtime.http.HTTPError) CRC32(im.actor.runtime.crypto.CRC32) RequestGetFileUploadPartUrl(im.actor.core.api.rpc.RequestGetFileUploadPartUrl) CRC32(im.actor.runtime.crypto.CRC32) RequestGetFileUploadUrl(im.actor.core.api.rpc.RequestGetFileUploadUrl)

Aggregations

RequestCommitFileUpload (im.actor.core.api.rpc.RequestCommitFileUpload)1 RequestGetFileUploadPartUrl (im.actor.core.api.rpc.RequestGetFileUploadPartUrl)1 RequestGetFileUploadUrl (im.actor.core.api.rpc.RequestGetFileUploadUrl)1 ResponseCommitFileUpload (im.actor.core.api.rpc.ResponseCommitFileUpload)1 ResponseGetFileUploadUrl (im.actor.core.api.rpc.ResponseGetFileUploadUrl)1 FileReference (im.actor.core.entity.FileReference)1 ModuleActor (im.actor.core.modules.ModuleActor)1 ModuleContext (im.actor.core.modules.ModuleContext)1 RpcCallback (im.actor.core.network.RpcCallback)1 RpcException (im.actor.core.network.RpcException)1 HTTP (im.actor.runtime.HTTP)1 Log (im.actor.runtime.Log)1 Storage (im.actor.runtime.Storage)1 ActorCancellable (im.actor.runtime.actors.ActorCancellable)1 ActorRef (im.actor.runtime.actors.ActorRef)1 CRC32 (im.actor.runtime.crypto.CRC32)1 FileSystemReference (im.actor.runtime.files.FileSystemReference)1 InputFile (im.actor.runtime.files.InputFile)1 OutputFile (im.actor.runtime.files.OutputFile)1 HTTPError (im.actor.runtime.http.HTTPError)1