Amazon web services AWS S3节点sdk copyObject NoSuchKey错误

Amazon web services AWS S3节点sdk copyObject NoSuchKey错误,amazon-web-services,amazon-s3,aws-lambda,Amazon Web Services,Amazon S3,Aws Lambda,更新 我认为这可能是因为没有等待弹性Trnscoder完成工作 我有一个由lambda发起的Amazon弹性转码器工作。我可以在“out”存储桶中看到转码文件。我正在尝试将此转码文件复制到另一个bucket,如下所示: let copyParams = { Bucket: "hurontg.video.out.1", CopySource: "hurontg.x3482.video.out/58759ab51e57_transcoded‌​.mp4", // bucket/file exi

更新 我认为这可能是因为没有等待
弹性Trnscoder
完成工作

我有一个由lambda发起的Amazon弹性转码器工作。我可以在“out”存储桶中看到转码文件。我正在尝试将此转码文件复制到另一个bucket,如下所示:

let copyParams = {
 Bucket: "hurontg.video.out.1", 
 CopySource: "hurontg.x3482.video.out/58759ab51e57_transcoded‌​.mp4", // bucket/file exists 
 Key: "58759ab51e57.mp4"
};

 s3.copyObject(copyParams, function(err, data) {
  if (err) {
   console.log(err, err.stack);
  } else {

  }
)};
这导致:

NoSuchKey: The specified key does not exist.

如前所述,我可以验证源bucket和文件是否存在。由于应在目标存储桶中创建
键,因此不确定此错误的含义是什么?

您需要确保CopySource是url编码的,例如
CopySource:encodeURIComponent(“hurontg.x3482.video.out/58759ab51e57_transcoded‌​.mp4“,


这里有更多详细信息:

如果
CopySource:“theu source\u bucket/theu transcoded\u file”,
是您的实际代码,那么很明显,这一行是错误的,因为变量不会像这样插入引号。如果这不是您的实际代码,那么这里是否真的有文字字符串?如果没有,这里是什么?错误消息表示没有与此值匹配的对象。@Michael sqlbot,
CopySource
是一个带值的字符串文字,
'hurontg.x3482.video.out/58759ab51e57_transcoded.mp4'
这个值应该是
/
+
源代码bucket name
+
/
+
对象键
@Michael sqlbot我想我没有在等待转码作业完成。你是怎么知道的?