0

我拉我的头发 2 小时试图找出发生了什么。我已经UnknownError使用 AWSJavaScriptSDK 将文件上传到 AWS Glacier。

var AWS, buffer, config, glacier, params, vaultName;

AWS = require('aws-sdk');

AWS.config.update({
  accessKeyId: "KEY_ID",
  secretAccessKey: "SECRETE",
  region: "ap-southeast-2"
});

glacier = new AWS.Glacier();

vaultName = "arn:aws:glacier:ap-southeast-2:VAULT_ID:vaults/VAULT_NAME";

buffer = new Buffer(2.5 * 1024 * 1024);

params = {
  vaultName: vaultName,
  body: buffer
};

glacier.uploadArchive(params, function(err, data) {
  if (err) {
    return console.log("Error uploading archive!", err);
  }
});

控制台中的结果如下:

Error uploading archive! { [UnknownError: 400]
  message: '400',
  code: 'UnknownError',
  statusCode: 400,
  time: Mon May 04 2015 00:03:20 GMT+1000 (AEST),
  retryable: false,
  retryDelay: 30 }

我试过了:

  • 使用 root api 密钥和秘密(尝试排除权限问题)
  • 未设置 api 键或设置错误的键
  • 从 fs.readFile 上传文件而不是使用 Buffer
  • 包含accountId: "-"param变量中

所有尝试都会导致相同的错误。

4

1 回答 1

0

回答我的问题。vaultName 应该只是名称而不是整个 arn 字符串。

错误消息甚至没有说出来!

于 2015-05-03T14:38:02.077 回答