我的用例是将文件从谷歌云存储复制到s3,所以我正在尝试使用谷歌云功能,这是在存储桶中发生事件后触发的。
代码片段。
var s3Stream = require('s3-upload-stream')(new AWS.S3());
var gcs = require('@google-cloud/storage')();
exports.hellogcs = function (event, callback) {
var bucket = gcs.bucket(event.data.bucket);
var remoteReadStream = bucket.file(file.name).createReadStream();
var uploadStream = s3Stream.upload({
"Bucket": 'my bucket',
"Key": 'parition1/'+event.data.name
});
console.log('writing into S3 stream');
remoteReadStream.pipe(uploadStream);
};
在日志中,我可以看到“写入S3流”,但s3存储桶中没有文件。
此外,我刚刚在谷歌云功能中列出了我的s3存储桶的文件。 上市是完美的。
只是想找到为什么这个管道不起作用以及通过谷歌功能处理的任何其他方法。 PS:我对node.js很新,所以如果有任何问题,请纠正我。
编辑: - 我注意到的只是小的< 3mb文件被复制,但大文件没有被复制。
答案 0 :(得分:0)
Google Cloud Functions不允许在Spark计划中为Google以外的主机出站网络电话。如果您没有更改为高级计划,可能会出现问题。