【问题标题】:Change URLs into files (Parse.com using Javascript CloudCode)将 URL 更改为文件(Parse.com 使用 Javascript CloudCode)
【发布时间】:2015-08-03 08:15:13
【问题描述】:

我需要将一些图像链接(存在于类中的 URL 链接)批量更改为图像文件(Parse.com 托管)。

云代码(显然)是如何做到的。

我已按照文档 here 进行操作,但没有任何成功。

我想做的是:

  1. 从“COLUMN_1”获取 URL 链接
  2. 将其设为文件
  3. 将文件上传到“COLUMN_1”(覆盖现有 URL)。如果这很危险 - 可以将其上传到新列(“COLUMN_2”)。
  4. 下一行重复

这段代码不起作用(这是我第一次使用 JS):

imgFile.save().then(function () {
    object.set("COLUMN_1", imgFile);
    return object.save();
}).then(function (CLASSNAME) {
    response.success("saved object");
}, function (error) {
   response.error("failed to save object");
});

任何人都可以推荐如何做到这一点?

【问题讨论】:

    标签: javascript http parse-platform parse-cloud-code


    【解决方案1】:

    好的-这对其他尝试的人都有效。

        Parse.Cloud.job("convertFiles", function(request, status) { //Cuts the rundata out of poor runs
        function sleep(milliseconds) {
          var start = new Date().getTime();
          for (var i = 0; i < 1e7; i++) {
            if ((new Date().getTime() - start) > milliseconds){
              break;
            }
          }
        }
    
        // Tell the JS cloud code to keep a log of where it's upto. Manually create one row (in class "debugclass") to get an object Id
        Parse.Cloud.useMasterKey();
    
        var Debug = Parse.Object.extend("debugclass");
        var queryForDebugObj = new Parse.Query(Debug);
        queryForDebugObj.equalTo("objectId", "KbwwDV2S57");
    
        // Query for all users
        // var queryForSublist = new Parse.Query(Parse.Object.extend("gentest"));
    
    
        queryForDebugObj.find({
            success: function(results) {
                var debugObj = results[0];
    
                var processCallback = function(res) {
                        var entry = res[0];
                        var debugObj = results[0];
                        debugObj.set("LastObject", entry.id);
                        debugObj.save();
    
                        Parse.Cloud.httpRequest({
                            url: entry.get("smallImage2"),
                            method: "GET",
                            success: function(httpImgFile) 
                            {
                                console.log("httpImgFile: " + String(httpImgFile.buffer));
                                var imgFile = new Parse.File("picture.jpg", {base64: httpImgFile.buffer.toString('base64')});
    
                                imgFile.save().then(function () {
                                    console.log("2");
                                    entry.set("smallImage1", imgFile);
                                    entry.save(null, {
                                      success: function(unused) {
                                        debugObj.increment("itemDone");
                                        sleep(20);
                                        res.shift();
                                        if (res.length === 0) {
                                            process(entry.id);
                                            return;
                                        }
                                        else {
                                            processCallback(res);
                                        }
    
    
                                      },
                                      error: function(unused, error) {
                                        response.error("failed to save entry");
                                      }
                                    });    
                                });                                             
                            },
                            error: function(httpResponse) 
                            {
                                console.log("unsuccessful http request");
                                response.error(responseString);
                            }
                        });
                };
                var process = function(skip) {{
                    var queryForSublist = new Parse.Query("genpants");
    
                    if (skip) {
                        queryForSublist.greaterThan("objectId", skip);
                        console.error("last object retrieved:" + skip);
                    }
                    queryForSublist.ascending("objectId");
                    queryForSublist.find().then(function querySuccess(res) {
                        processCallback(res);
                    }, function queryFailed(reason) {
                        status.error("query unsuccessful, length of result " + result.length + ", error:" + error.code + " " + error.message);
                    });
                }};
    
                process(debugObj.get("LastObject"));
    
            },
            error: function(error) {
                status.error("xxx Uh oh, something went wrong 2:" + error + "  " + error.message);
            }
        });  
    });
    

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 1970-01-01
      • 2015-02-26
      相关资源
      最近更新 更多