Search in sources :

Example 1 with InputFile

use of im.actor.runtime.files.InputFile 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