Google云存储正确图片上传
Google cloud storage correct image uploading
正确上传图片有问题。文本文件上传正常。图片正在上传,但是当我从 google 存储打开它时,图片不显示(即使我下载了它)。
在前端,我从计算机获取文件并使用 FileReader() 将文件转换为二进制文件。在服务器上我正在做请求。
代码:
GoogleApi.prototype.uploadFile = function(file, cb) {
var token = this.token;
var privateInfo = Meteor.settings.private.GOOGLE;
console.log(file); //checked all info before sending. All is ok
try {
var res = HTTP.post("https://www.googleapis.com/upload/storage/v1/b/my_bucket_srohyi/o", {
headers: {
"Content-Type": file.type,
"Content-Length": file.size,
Authorization: "Bearer" + " " + token
},
params: {
project: privateInfo.project_id,
uploadType: "media",
name: file.name,
},
content: file.data //using FileReader.readAsBinaryString()
});
return cb(null, res);
}
catch (err) {
cb(err);
}
}
我正在研究 meteor.js,但我认为这不是流星问题。
希望有人能帮助我。
如果我的英语不好也很抱歉
问题已解决
只需要将文件转换为数组缓冲区(不是二进制字符串)并从中创建一个 Uint8Array。
正确上传图片有问题。文本文件上传正常。图片正在上传,但是当我从 google 存储打开它时,图片不显示(即使我下载了它)。
在前端,我从计算机获取文件并使用 FileReader() 将文件转换为二进制文件。在服务器上我正在做请求。
代码:
GoogleApi.prototype.uploadFile = function(file, cb) {
var token = this.token;
var privateInfo = Meteor.settings.private.GOOGLE;
console.log(file); //checked all info before sending. All is ok
try {
var res = HTTP.post("https://www.googleapis.com/upload/storage/v1/b/my_bucket_srohyi/o", {
headers: {
"Content-Type": file.type,
"Content-Length": file.size,
Authorization: "Bearer" + " " + token
},
params: {
project: privateInfo.project_id,
uploadType: "media",
name: file.name,
},
content: file.data //using FileReader.readAsBinaryString()
});
return cb(null, res);
}
catch (err) {
cb(err);
}
}
我正在研究 meteor.js,但我认为这不是流星问题。
希望有人能帮助我。
如果我的英语不好也很抱歉
问题已解决
只需要将文件转换为数组缓冲区(不是二进制字符串)并从中创建一个 Uint8Array。