0

我正在尝试设置一个简单的 S3 服务器,我可以提取一个 url(在这种情况下,它将是一个已经导入的 Quickbase 文件),并且通过单击一个按钮将调用存储在 Quickbase 页面中的脚本,该脚本将发布到 S3使用我定义的标签字段,为简单起见,它是 div 字段中的 dbid 和记录 id# 作为其数据被拉入脚本中

var fileToUpload = $(this).attr('data');
var qbfiletag = $(this).attr('data');

要上传的文件具有与 Quickbase 存储我需要导入的文件完全相同的 url。

我知道这是可能的,因为 Juice 和 Zapier 团队已经做到了,我只是很难将凭据设置为 url。

我什至不能 100% 确定我正确设置了访问密钥。我确实授予了对 mycompany.quickbase.com 的读写访问权限,但除此之外,我有太多关于 aws 提供的所有信息的信息,很难缩小我搞砸的地方。

4

1 回答 1

0

设置您的帐户以通过 JavaScript 访问 S3 似乎有几个步骤。创建存储桶后,您需要通过访问存储桶的属性并选择编辑 CORS 配置来设置 CORS。您提到授予对公司域的读/写访问权限,因此您可能已经这样做了。我用亚马逊的这个来测试:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>https://mycompany.quickbase.com</AllowedOrigin>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>POST</AllowedMethod>
    <AllowedMethod>DELETE</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>

第二部分是在Identity and Access Management Console中创建一个 IAM 用户。在创建用户的过程中,亚马逊会自动生成访问密钥 ID 和秘密访问密钥对。稍后您将需要这些用于 API 调用。您还需要附加一个为用户建立权限的策略。我使用 AmazonS3FullAccess 策略进行测试。所有这些都是通过该控制台完成的。

设置 IAM 用户后,您可以在使用来自 Amazon 的 JavaScript 开发工具包实例化 S3 对象之前将访问密钥 ID 和秘密访问密钥传递给 AWS 配置器。

AWS.config.update({accessKeyId: 'ABCDEFGHIJKLMNOP', secretAccessKey: 'a1b2c3d4e5f6g7i8j9k0+0012ab'});
var bucket = new AWS.S3({params: {Bucket: 'myBucketName'}});

从那里您可以使用该bucket对象调用 SDK 中的任何 S3 方法,包括上传您的文件。

于 2016-08-04T00:09:59.607 回答