2016-07-31 58 views
0

我想设置一个简单的S3服务器我可以拉一个URL(在这种情况下,它将是一个已经导入的Quickbase文件),并通过单击按钮将调用存储在Quickbase页面中的脚本到S3与我定义的标签领域,为了简单起见,它的dbid和记录ID#这是在一个div领域作为其数据每拉进脚本如何使用AWS S3 URL设置凭证?

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

文件上传的URL是确切的说Quickbase是存储我需要导入的文件。

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

我甚至不能100%确定我正确设置了访问密钥。我确实给mycompany.quickbase.com写了读取权限,但是除此之外,我有很多关于aws提供的信息来减少我搞乱的地方。

+0

为了清楚起见,这里的目标是推动Quickbase表单上的按钮,导致与该记录相关联的文档存储在您的S3服务器上? –

+0

按下Quickbase表单上的一个按钮,从Quickbase检索文件并将其存储在s3服务器上。 –

回答

0

看起来好像有几个步骤来设置您的帐户通过JavaScript访问S3。在创建桶之后,您需要通过访问桶的属性并选择编辑CORS配置来设置CORS。你提到给你公司域名的读/写权限,所以你可能已经这样做了。我用这一个从Amazon到测试:

<?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用户。在创建用户的过程中,Amazon将自动生成访问密钥ID和秘密访问密钥对。稍后您需要这些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方法。

+0

我试图从quickbase内发帖,并有跨域问题。因此,我会使用类似GH的please.js这样的方式发布包含QB引用所需数据的消息,以便提取正确的文件。 我试图使用[this](http://stackoverflow.com/questions/17585881/amazon-s3-direct-file-upload-from-client-browser-private-key-disclosure/31055652#31055652)格式张贴。 我对Access-Control-Allow-Origin有问题,我不确定如何在网站上声明我知道我在Cors doc上有正确的文档 –

+0

如果您仍然遇到跨域问题,这是一个很好的迹象表明CORS安装不正确。你有没有尝试过让亚马逊的例子上传数据到一个对象工作,然后再调整到你的项目的特定需求?如果没有,我建议尝试这个例子,并通过CORS和认证问题来处理已知的代码。这就是我在上面测试我的答案的方式。 http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/browser-examples.html#Amazon_S3 –

相关问题