【问题标题】:Connect to Amazon S3 from google apps script从谷歌应用脚​​本连接到 Amazon S3
【发布时间】:2021-08-13 17:29:15
【问题描述】:

我正在尝试从 Google Apps 脚本连接到 Amazon S3。我想将当前文档复制到 Amazon S3。

我尝试了下面的代码,但在尝试运行时出错。 使用的库 - https://github.com/eschultink/S3-for-Google-Apps-Script 代码如下

function test() {  

 var blob = DocumentApp.getActiveDocument().getBlob();
  var region = 'us-east-2';

    try {
    S3.init("XXXX", "XXX");
    S3.putObject('bucket-name', blob.getName(), blob, region);
   } catch(e) {
    var message = e.toString();
    Logger.log("test - FAIL - unexpected message [" + message + "]");
    Logger.log(e);
  }

错误详情

AWS 错误 - SignatureDoesNotMatch:我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。

谁能指导我如何从谷歌应用脚​​本连接到 S3。

谢谢。

【问题讨论】:

  • 该错误表明使用访问密钥和秘密密钥“签名”请求时出现问题。 github 代码似乎表明它使用的是 SigV4,这很好。因此,访问密钥和密钥组合不正确,或者代码未正确生成签名。您可以尝试连接到us-east-1 中的存储桶,因为它比us-east-2 更老,只是为了检查它是否工作得更好?
  • 感谢您指出该地区。内部 s3 请求使用 us-east-1 而我的存储桶在 us-east-2
  • 现在可以将文件上传到 S3,但出现“加载 PDF 文档失败”。从 S3 打开文件时。看起来文件在上传到 S3 时损坏了var blob = DocumentApp.getActiveDocument().getAs('application/pdf'); var s3 = new S3('XXXXX', 'XXXX'); s3.putObject("bucket", blob.getName(), blob, {logRequests:true});
  • 请随意创建一个包含详细信息的新问题。
  • 好的,谢谢

标签: amazon-web-services amazon-s3 google-apps-script google-sheets google-docs


【解决方案1】:

您似乎缺少或未发布配置功能。根据您所关注的文档,您应该拥有如下所示的内容:

测试

从单独的 App Script 实例运行库的测试,如下所示(将环境属性替换为您自己的 AWS 访问权限 >key/secret):

function runTests() {
S3.setTestEnv({
  "awsAccessKeyId":"{{replace this with your access key}}",
  "awsSecretKey":"{{replace this with your secret}}",
});
S3.runTests();
//if running in Spreadsheet context, you can uncomment this
//Browser.msgBox("All tests passed");
}

检查视图 -> 日志以验证一切正常,或查看 > 测试中的哪个位置死亡。如果有人想给我指出一个 JSUnit-equivalent for >Google Apps Script,那就太好了。 (或者更好的是,让 Jasmine/Karma >为此工作)。

您可以使用 S3.runTests();函数看看是否配置正确。

https://engetc.com/projects/amazon-s3-api-binding-for-google-apps-script/

【讨论】:

  • 现在可以将文件上传到 S3,但出现“加载 PDF 文档失败”。从 S3 打开文件时
猜你喜欢
  • 2021-10-31
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 2019-02-23
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
相关资源
最近更新 更多