Bluemix Nodejs FileTransferStep,文档

时间:2015-09-24 23:06:06

标签: node.js sdk ibm-cloud

我是bluemix的新手。我下载了客户端库。但我没有看到Javascript的API文档。我在哪里找到的?我如何调用几个javascript函数,这些函数既不在nodejs客户端库中,也不能在网上找到它?

1 个答案:

答案 0 :(得分:1)

关于Workload服务调用,您必须编辑package.json文件 使用https链接添加对iws-light模块的依赖关系,如下所示

"dependencies": {
    "iws-light": "https://start.wa.ibmserviceengage.com/bluemix/iws-light.tgz"
}

然后你必须打开你的shell,转到应用程序的根目录并运行:

npm install

之后,您可以在应用程序中要求Workload Scheduler服务:

var ws = require("iws-light");

并创建与Bluemix的连接:

    //retrieve service URL from Bluemix VCAP_SERVICES...
    var wsConn;
    if(process.env.VCAP_SERVICES) {
        wsConn = ws.createConnection();
    } else {
        //...or set it on your own(if you're working in local)
        var url = "your workload scheduler url";
        wsConn = ws.createConnection(url);
    }

    //retrieve cloud agent 
    var agentName;
    wsConn.getCloudAgent(function(data) {
        agentName = data;
    });

    //set your timezone
    wsConn.setTimezone({timezone: "Europe/Rome"}, function(err, data){
        if(err){
            console.log(err);
        }
    });

现在您已准备好使用lib并创建进程 并添加一个FileTransferStep:

    //create a process
    var process = new ws.WAProcess("ProcessName", "This process transfer a file every day from local to remote server");

    //supported operations are ws.steps.FileTransferStep.OperationDownload or ws.steps.FileTransferStep.OperationUpload
    var operation = ws.steps.FileTransferStep.OperationUpload;


    //create FileTransferStep
    var ftStep = new ws.steps.FileTransferStep(agentName, operation);

    //supported protocols are AUTO, FTP, FTPS, SSH, WINDOWS;
    ftStep.setProtocol(ws.steps.FileTransferStep.ProtocolAuto);

    //set local file
    var local = {
        path: "local file path",
        user: "local username",
        password: "local password"
    };
    ftStep.setLocalFile(local.path, local.user, local.password);

    //set remote file
    var remote = {
        path: "remote file path",
        user: "remote username",
        password: "remote password",
        server: "remote server"
    };
    ftStep.setRemoteFile(remote.server, remote.path, remote.user, remote.password);

    //the binary mode flag: true if it uses FTP binary mode
    var binaryMode = true;
    the passive mode flag: true if it uses FTP passive mode
    var passiveMode = true;
    //set timeout
    var timeout = 5;
    ftStep.setMode(binaryMode, passiveMode , timeout);

    //add FileTransferStep to the process
    process.addStep(ftStep);

    //create a trigger
    var trigger = new ws.TriggerFactory.everyDayAt(1, 7, 30);

    //add Trigger to the process
    process.addTrigger(trigger);

    process.tasklibraryid = "your task library id";

    //create and enable process
    wsConn.createAndEnableProcess(process, function(err, data){
        if(err){
            console.log(error);
        } else{
            console.log("process created and enabled");
        }
    });

上面的代码使用node.js代码中的文件传输步骤创建了一个进程,但是我不确定这是否是您实际需要的。 如果您可以解释您尝试实现的方案,我可以更准确地了解使用Workload Scheduler服务实现此方案的最佳方法。

此致 加布里埃尔