将 URL 更改为文件(Parse.com 使用 Javascript CloudCode)
Posted
技术标签:
【中文标题】将 URL 更改为文件(Parse.com 使用 Javascript CloudCode)【英文标题】:Change URLs into files (Parse.com using Javascript CloudCode) 【发布时间】:2015-08-03 08:15:13 【问题描述】:我需要将一些图像链接(存在于类中的 URL 链接)批量更改为图像文件(Parse.com 托管)。
云代码(显然)是如何做到的。
我已按照文档 here 进行操作,但没有任何成功。
我想做的是:
-
从“COLUMN_1”获取 URL 链接
将其设为文件
将文件上传到“COLUMN_1”(覆盖现有 URL)。如果这很危险 - 可以将其上传到新列(“COLUMN_2”)。
下一行重复
这段代码不起作用(这是我第一次使用 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");
);
任何人都可以推荐如何做到这一点?
【问题讨论】:
【参考方案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);
);
);
【讨论】:
以上是关于将 URL 更改为文件(Parse.com 使用 Javascript CloudCode)的主要内容,如果未能解决你的问题,请参考以下文章
我已经使用 springdoc 安装了 OpenAPI 3,但是 URL 很奇怪。我可以将其更改为预期值吗?