void ObjectSample::MultiCopyObjectProcess()

in sample/src/object/ObjectSample.cc [367:413]


void ObjectSample::MultiCopyObjectProcess() 
{
    //case 1: checkpoint dir is not enabled
    {
        MultiCopyObjectRequest request(bucket_, "MultiCopyObjectProcess", bucket_, "MultiCopyObjectProcess_Src");

        TransferProgress progressCallback = { ProgressCallback , this };
        request.setTransferProgress(progressCallback);
        auto outcome = client->ResumableCopyObject(request);
        if (outcome.isSuccess()) {
            std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
        }
        else {
            PrintError(__FUNCTION__, outcome.error());
        }
    }

    //case 2: checkpoint dir is config
    {
        MultiCopyObjectRequest request(bucket_, "MultiCopyObjectProcess", bucket_, "MultiCopyObjectProcess_Src", Config::CheckpointDir);

        TransferProgress progressCallback = { ProgressCallback , this };
        request.setTransferProgress(progressCallback);
        auto outcome = client->ResumableCopyObject(request);
        if (outcome.isSuccess()) {
            std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
        }
        else {
            PrintError(__FUNCTION__, outcome.error());
        }
    }

    //case 3: checkpoint dir is config, multi threads is config
    {
        MultiCopyObjectRequest request(bucket_, "MultiCopyObjectProcess", bucket_, "MultiCopyObjectProcess_Src", Config::CheckpointDir, DefaultPartSize, 4);

        TransferProgress progressCallback = { ProgressCallback , this };
        request.setTransferProgress(progressCallback);
        auto outcome = client->ResumableCopyObject(request);
        if (outcome.isSuccess()) {
            std::cout << __FUNCTION__ << "[" << this << "]" << " success, ETag:" << outcome.result().ETag() << std::endl;
        }
        else {
            PrintError(__FUNCTION__, outcome.error());
        }
    }
}