我的使用场景是将一个文件从Google云存储复制到S3,因此我正在尝试使用Google Cloud Function,在存储桶中触发事件后触发。
这是代码片段。
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桶中没有文件。
此外,我刚刚在Google云功能中列出了我的S3桶中的文件列表, 并且列表完美无误。
只是想找出为什么这个管道不起作用以及通过谷歌函数处理的其他方法。 附注:我对node.js还很新,请纠正我是否有任何问题。
编辑:- 我注意到只有小于3mb的文件才会被复制,而大文件则不会被复制。