如何在 Node 中处理来自 googleusercontent CDN 的图像文件?
How to handle an image file from googleusercontent CDN in Node?
正在尝试从 Google CDN 请求图像并将其上传到 S3。
使用 https://github.com/request/request
库和 Node / Express
;
有点困惑如何处理从 Google CDN 返回的负载。
图像在正文字段中返回并经过编码。不确定它是如何编码的。
将 URL 分配给 Google CDN:
const fileURL = https://lh4.googleusercontent.com/EWE1234rFL006WfQKuAVrsYMOiKnM6iztPtLgXM5U…3i26LoPHQwPTQME7ne3XoMriKVjUo3hrhwWw1211223
request(fileURL, (err, res, body) => {
//NOT sure how to handle the response here??
//Trying base64
fs.writeFileSync(`.tmp/file1.png`, body, {encoding: 'base64'});
//Trying Binary
fs.writeFileSync(`.tmp/file.png`, body, {encoding: 'binary'});
}
正文返回为:
�PNG↵↵IHDRv&vл� IDATx�}���<z�f���];��o]��A�N�.po�/�/R���..............
1).从 googleusercontent
Google CDN 请求图像(图像最初粘贴在 Google 文档中)
2).创建图像文件并写入服务器上的磁盘。
fs.writeFileSync
似乎都无法生成可读的图像文件。
关于处理这个问题的任何建议都很棒..
将响应作为正文传递到您的 S3 上传。
var request = require('request'),
fs = require('fs'),
aws = require('aws-sdk'),
s3 = new aws.S3(),
url = 'https://lh4.googleusercontent.com/-2XOcvsAH-kc/VHvmCm1aOoI/AAAAAAABtzg/SDdN1Vg5FFs/s346/14%2B-%2B1';
# Store in a file
request(url).pipe(fs.createWriteStream('file.gif'));
request(url, {encoding: 'binary'}, function(error, response, body) {
# Another way to store in a file
fs.writeFile('file.gif', body, 'binary', function(err) {});
# Upload to S3
s3.upload({
Body: body,
Bucket: 'BucketName',
Key: 'file.gif',
}, function(err, data) {});
});
正在尝试从 Google CDN 请求图像并将其上传到 S3。
使用 https://github.com/request/request
库和 Node / Express
;
有点困惑如何处理从 Google CDN 返回的负载。
图像在正文字段中返回并经过编码。不确定它是如何编码的。
将 URL 分配给 Google CDN:
const fileURL = https://lh4.googleusercontent.com/EWE1234rFL006WfQKuAVrsYMOiKnM6iztPtLgXM5U…3i26LoPHQwPTQME7ne3XoMriKVjUo3hrhwWw1211223
request(fileURL, (err, res, body) => {
//NOT sure how to handle the response here??
//Trying base64
fs.writeFileSync(`.tmp/file1.png`, body, {encoding: 'base64'});
//Trying Binary
fs.writeFileSync(`.tmp/file.png`, body, {encoding: 'binary'});
}
正文返回为:
�PNG↵↵IHDRv&vл� IDATx�}���<z�f���];��o]��A�N�.po�/�/R���..............
1).从 googleusercontent
Google CDN 请求图像(图像最初粘贴在 Google 文档中)
2).创建图像文件并写入服务器上的磁盘。
fs.writeFileSync
似乎都无法生成可读的图像文件。
关于处理这个问题的任何建议都很棒..
将响应作为正文传递到您的 S3 上传。
var request = require('request'),
fs = require('fs'),
aws = require('aws-sdk'),
s3 = new aws.S3(),
url = 'https://lh4.googleusercontent.com/-2XOcvsAH-kc/VHvmCm1aOoI/AAAAAAABtzg/SDdN1Vg5FFs/s346/14%2B-%2B1';
# Store in a file
request(url).pipe(fs.createWriteStream('file.gif'));
request(url, {encoding: 'binary'}, function(error, response, body) {
# Another way to store in a file
fs.writeFile('file.gif', body, 'binary', function(err) {});
# Upload to S3
s3.upload({
Body: body,
Bucket: 'BucketName',
Key: 'file.gif',
}, function(err, data) {});
});