我正在尝试设置一个简单的S3服务器,我可以提取一个网址(在这种情况下,它将是一个已经导入的Quickbase文件),点击按钮将调用存储在Quickbase页面中的脚本使用我定义的标记字段发布到S3,为简单起见,它是div字段中的dbid和记录ID#作为其数据被拉入脚本
var fileToUpload = $(this).attr('data');
var qbfiletag = $(this).attr('data');
要上传的文件具有与Quickbase存储我需要导入的文件完全相同的URL。
我知道这是可能的,因为Juice和Zapier团队已经完成了,我只是很难设置凭据来做这个作为网址。
我甚至不确定我是否正确设置了访问密钥。我确实给了mycompany.quickbase.com的读写权限,但除此之外我已经掌握了很多关于各种各样的信息,因为我很难缩小我搞砸的地方。
答案 0 :(得分: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进行API调用。您还需要附加为用户建立权限的策略。我使用AmazonS3FullAccess策略进行测试。所有这些都是通过该控制台完成的。
设置好IAM用户后,您可以在使用Amazon的JavaScript SDK实例化S3对象之前,将访问密钥ID和秘密访问密钥传递给AWS配置程序。
AWS.config.update({accessKeyId: 'ABCDEFGHIJKLMNOP', secretAccessKey: 'a1b2c3d4e5f6g7i8j9k0+0012ab'});
var bucket = new AWS.S3({params: {Bucket: 'myBucketName'}});
从那里你可以使用bucket
对象来调用SDK中的任何S3方法,包括上传你的文件。