Node.js 如何在AWS Lambda中获取文件路径?
我想使用Google云平台的客户端库向Google云平台发送一个文件,例如本例(Node.js代码示例): 我当前的代码如下所示:Node.js 如何在AWS Lambda中获取文件路径?,node.js,aws-lambda,google-cloud-storage,Node.js,Aws Lambda,Google Cloud Storage,我想使用Google云平台的客户端库向Google云平台发送一个文件,例如本例(Node.js代码示例): 我当前的代码如下所示: const s3Bucket = 'bucket_name'; const s3Key = 'folder/filename.extension'; const filePath = s3Bucket + "/" + s3Key; await storage.bucket(s3Bucket).upload(filePath, { gzip: true,
const s3Bucket = 'bucket_name';
const s3Key = 'folder/filename.extension';
const filePath = s3Bucket + "/" + s3Key;
await storage.bucket(s3Bucket).upload(filePath, {
gzip: true,
metadata: {
cacheControl: 'public, max-age=31536000',
},
});
但当我这样做时,有一个错误:
“enoint:没有这样的文件或目录,stat”
“ch.ebu.mcma.google.eu-west-1.ibc.websiteExtract/AudioJobResults/audioGoogle.flac”
我还试图发送我在AWS控制台(复制路径按钮)“s3://s3-eu-west-1.amazonaws.com/ch.ebu.mcma.google.eu-west-1.ibc.website/ExtractAudioJobResults/audioGoogle.flac”中获得的路径,但没有成功
您似乎试图将数据从S3直接复制到Google云存储。这不是您的示例/教程所显示的。示例代码假设您将数据的本地副本上载到Google云存储。S3不是本地存储 你如何做到这一点:
/tmp
/tmp
/tmp
注意:当前
/tmp
下的可用存储限制为500MB。如果你想上传/复制比这个大的文件,这是行不通的。还要注意,lambda执行环境可能会被重复使用,因此,如果您计划复制大量文件,那么在自己之后进行清理(即第3步)可能是一个好主意。您是否正在尝试将和S3对象直接复制到谷歌云存储?如果不先下载它,我怀疑这是不可能的,而第一个示例并没有显示这一点。事实上,该评论明确指出,要上传的本地文件
这里的重点是本地文件。S3不是本地存储;-)是的,我想将存储在AWS S3 Bucket中的文件发送到谷歌云存储。我不知道是不是“直接”的。谢谢你的留言,我想我现在明白该怎么处理了。实际上,我认为S3是一种本地存储:-)很高兴我们澄清了误解,我建议您将文件从S3下载到Lambda(/tmp
)中的本地存储,然后从那里上传到Google云存储。请注意/tmp有一个500MB的限制。谢谢@Maurice,这就是我所做的,它按预期工作。请加上你的答案,这样我就可以接受了。