这是我原来的云代码功能来调整照片大小,如果照片尺寸小于1 MB,它可以很好地处理小尺寸的照片。这个函数返回错误,没有调用成功/错误。我花了我的有更多的时间来研究这个函数并使这个函数更简单,请参阅我的下一个注释以获得更简单的函数...
Parse.Cloud.define("mediaPhotoResize", function(request, response) {
Parse.Cloud.useMasterKey();
var parseMediaId = request.params.objectId;
var Image = require("parse-image");
var photoUrl = request.params.photoUrl;
Parse.Cloud.httpRequest({
url: photoUrl
}).then(function(responseHTTP) {
var image = new Image();
return image.setData(responseHTTP.buffer);
}).then(function(image) {
return image.scale({
ratio: 0.05
});
}).then(function(image) {
return image.setFormat("JPEG");
}).then(function(image) {
return image.data();
}).then(function(buffer) {
var base64 = buffer.toString("base64");
var cropped = new Parse.File('thumbnail_photo.jpg', {base64: base64});
return cropped.save();
}).then(function(cropped) {
var ParseMedia = Parse.Object.extend("ParseMedia");
var mediaQuery = new Parse.Query(ParseMedia);
mediaQuery.get(parseMediaId, {
success: function(mediaObj) {
var fileObj = {};
fileObj["name"] = cropped.name();
fileObj["url"] = cropped.url();
fileObj["__type"] = "File";
mediaObj.set("mediaThumbnail", fileObj);
mediaObj.save(null, {
success: function(mediaObj) {
response.success(mediaObj);
}, error: function(error) {
response.error(error);
}
});
}, error: function(error) {
response.error(error);
}
});
});
});
比我让我的功能更简单,检查Cloud.Code.httpRequest请求,这是否能及时回应我而且我发现这会给我一个错误"执行超时"只有大图像。请检查我修改过的云代码功能
Parse.Cloud.define("parseImageTest", function(request, response) {
var Image = require("parse-image");
Parse.Cloud.httpRequest({
url: "http://files.parsetfss.com/a7b7ddfe-bcd9-4046-be12-5b155005b5e3/tfss-027f8804-9e51-4f80-ba3d-dbb3948bb80c-parse-media-photo.jpg",
success: function(responsehttp) {
// The file contents are in response.buffer.
var image = new Image();
return image.setData(responsehttp.buffer, {
success: function() {
response.success("Image is " + image.width() + "x" + image.height() + ".");
},
error: function(error) {
response.error(error);
}
})},
error: function(error) { response.error(error); }
});
});