Tag: amazon web services

来自jquery或XMLHttpRequest的HTTP GET到amazon aws失败,Access-Control-Allow-Origin不允许使用Origin

从jQuery或XMLHttpRequest获取amazon AWS安全令牌运气不佳。 当我从jQuery或XmlHttpRequest发送HTTP GET时,我得到“Origin http:// Access-Control-Allow-Origin不允许MY_IP。”但是如果我在浏览器中粘贴相同的URL,那一切都很顺利。 我的代码: var url_ = “https://sts.amazonaws.com/?Action=GetSessionToken” + “&DurationSeconds=3600” + “&AWSAccessKeyId=” + AccessKeyId + “&Version=2011-06-15” + “&Timestamp=” + encode(timestamp) + “&Signature=” + encode(hash) + “&SignatureVersion=2&SignatureMethod=HmacSHA256”; $.get(url_, function(data) { alert(“response: “+data); }); 我的标题: 响应标题 Accept-Ranges字节 年龄198岁 连接保持活跃 内容长度3739 内容类型文本/ html 日期星期一,2012年6月25日17:48:20 GMT Etag“48c4862-e9b-4c34f76b13400” Last-Modified Mon,25 Jun 2012 17:39:28 GMT 代理连接保持活跃 服务器Apache / […]

如何对AWS S3存储桶进行ajax调用以从文件夹中获取文件名?

我试图从文件夹中获取图像文件名,以将其作为HTML元素动态添加到我的网页。 为了做到这一点,我发现这段代码在本地主机上完美运行。 var folder = “img/gallery/”; $.ajax({ url: folder, success: function(data) { $(data).find(“a”).attr(“href”, function(i, val) { if (val.match(/\.(jpe?g|png|gif)$/)) { // TODO: Filter and Title strings needs to be changed var lightboxElement = “”; $(“#lightbox”).append(lightboxElement); } }); }, error: function(exception) { console.log(data); } }); 基本上,这段代码的作用是在指定的文件夹中搜索不同类型的图像文件并返回它们的名称。 然后,将具有图像源地址的img元素添加到确定的HTML对象(#lightbox)。 当我在我的本地服务器上运行整个项目时,它完全正常。 但是,将其上载到AWS S3存储桶时,该ajax调用不起作用。 当我搜索时,我找到了几种可能的解决方案。 1)他们建议将交叉源资源共享(CORS)文件添加到存储桶中。 我添加了以下规则的文件。 但它没有用。 * GET * […]

Flowplayer设置来自Amazon S3的.flvvideo的开始时间

到目前为止我所拥有的: 当我打开一个jquery对话框时,该对话框中的Flowplayer开始自动播放并自动缓存来自s3的URL。 我需要的: 我有一个时间变量(让我们说300秒)。 当我打开该对话框时,我希望video从300.second开始(autoplay和autobuffer on。)。 我希望以任何方式执行此操作,例如在html中如果flowplayer支持它或在javascript中。 方式无关紧要。 你知道我怎么做到的吗? 当我使用脚本代码时: clip: { onStart: function () { this.seek(300); } } 它只能在那一点寻求缓冲时间的结束,即最多约20秒,这当然是自然的。 有没有办法做到这一点? 谢谢。

当浏览器和CURL工作时,ajax GET请求因URL而超时

我看到一个类似的问题,但它没有一个公认的回答。 以下ajax请求超时。 但是使用浏览器或curl工作的GET请求在同一个URL上工作正常。 请注意,这是一个cross domain AJAX因为代码位于不同的服务器上,URL适用于AWS EC2(elastbeanstalk)实例。 任何线索为什么? $.ajax({ url: “http://.elasticbeanstalk.com/api/v1/Location”, dataType:’jsonp’, crossDomain:true, timeout:120000 }).done(function(){ //do something $(“#status”).html(“SUCESS”); }).fail(function(jqXHR, textStatus){ if(textStatus == ‘timeout’) { //alert(‘Failed from timeout’); $(“#status”).html(textStatus); //do something. Try again perhaps? } }); [编辑]补充说 当我检查AWS服务器日志时,我看到GET请求以200(成功)响应。 但仍然是$ .ajax请求超时 120.138.116.202 – – [17 / Jun / 2015:12:12:31 +0000]“GET / api / v1 / Location HTTP […]

Amazon CloudSearch查询

我对如何从静态HTML页面查询我的Amazon CloudSearch感到很遗憾。 尽管文档很好,但除了在浏览器中复制和粘贴URL之外,没有任何示例。 我想要的是S3中的HTML页面,因此不允许服务器端代码,有一个文本字段表单,当单击搜索按钮时触发我的CloudSearch终点并返回结果 CloudSearch使用JSON进行响应,因此必须对其进行解析并生成结果表。 到目前为止,我一直在本地使用保存的结果JSON并使用Jquery读取JSON文件 JSON Sample $.getJSON(‘search.json’, function(data) { var output=””; for (var i in data.hit) { output+=”” + data.hit[i].id+ “”; } output+=””; document.getElementById(“placeholder”).innerHTML=output; console.log(data); }); 这给了我记录的ID。 但是当我尝试将URL更改为CloudSearch端点时,我没有收到任何数据。 阅读并绕圈子我认为这是因为CORS。 但是,亚马逊的文档只是说在端点上使用HTTP GET但是如何在我的HTML页面中构建它。 对不起这个基本问题

如何使用Amazon S3创建一次性下载链接?

我想创建一个amazon s3托管文件的一次性下载链接。 文件下载后,此链接将过期。 我希望仍然可以托管此文件,但访问者只能下载一次该文件。 我需要这个场景是:我有一个文件下载网站,用户在那里支付文件费用。 我希望用户只能从网站(和amazon s3)下载文件一次,我也不希望用户能够与其他人共享直接下载链接。 如果这是不可能的,我想知道如果可能的话,用IP地址或Cookie来限制它是否更有效?

Amazon S3和jqueryfileupload插件的图像上传性能问题

我有另一个亚马逊的问题,它与文件uploads有关。我正在使用jqueryFileUpload和amazon API将文件上传到亚马逊S3。我已成功上传它,但它涉及一个技巧。 我必须将图像存储在我的服务器上,然后使用S3的putObjectFile方法将其从那里移到S3。现在该插件具有很好的function来裁剪/调整图像,我一直在使用它们。现在我整合了插件使用AWS,我面临上传的性能问题 。上传时间比平时长,这引发了我们使用AWS S3而不是传统方式的问题。 我不得不对我的UploadHandler.php文件进行更改以使其工作。这些是所做的更改。我将一部分AWS上传代码添加到735到750行的文件中 $bucket = “elasticbeanstalk-2-66938761981”; $s3 = new S3(awsAccessKey, awsSecretKey); $response = $s3->putObjectFile($file_path,$bucket,$file->name,S3::ACL_PUBLIC_READ); $thumbResponse = $s3->putObjectFile(‘files/thumbnail/’.$file->name,$bucket,’images/’.$file->name,S3::ACL_PUBLIC_READ); //echo $response; //echo $thumbResponse; if ($response==1) { //echo ‘HERER enter!!’; } else { $file->error = “Something went wrong while uploading your file… sorry.”; } return $file; 这是git上s3类的链接。 正常上传到我当前的服务器(不是亚马逊),相同的图像上传15秒 ,但在亚马逊S3上需要大约23秒 ,我无法找到更好的解决方案。我必须将图像存储在我的服务器上上传到S3,因为我不确定我是否可以动态处理它们并直接上传到S3。 任何人都可以建议正确的方法来解决这个问题吗?是否有可能将图像大小调整到内存中的不同大小并直接上传到S3,避免了将其保存到我们服务器的开销?如果有,任何人都可以指导我朝着正确的方向前进吗? 谢谢你的关注。

AWS API网关没有“Access-Control-Allow-Origin”标头

我坚持使用API​​网关的问题,我已经在这个AWS论坛上完成了所有其他的SO答案,并且已经通过他们的文档,但仍然没有乐趣。 我正在尝试使用AWS API网关设置API,该网关调用Lambda函数,该函数读取/写入DynamoDB中的表。 DynamoDB的Lambda函数正在运行。 我在AWS中创建了一个API,并为它创建了一个GET和OPTIONS方法。 我读AWS并没有强制执行OPTIONS仅用于GET / POST,但是当我没有OPTIONS方法时,我在ajax调用中遇到了预检错误,所以我添加了一个。 目前为了取得进展,我没有使用API​​密钥或授权。 我可以使用POSTMAN成功调用我的GET方法,POSTMAN返回DynamoDB表的内容。 但是当我尝试使用JQuery ajax调用时,我得到了 No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not allowed access. 我可以看到在网络选项卡下使用Chrome开发工具,OPTIONS方法返回状态200,GET返回状态200,但出现上述错误。 我已尝试在OPTIONS和GET方法上启用CORS,在每次更改后重新部署API,尝试了以下( http://enable-cors.org/server_awsapigateway.html )但总是得到相同的错误安慰。 我正在从桌面上的文件执行ajax调用,所以origin是null,因为页面将部署到S3作为JS中的单个Web页面应用程序。 当我在我的GET和OPTIONS上启用CORS时,我可以看到Access-Control-Allow-Headers是’Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token’和Access -Control-Allow-Origin *是’*’ 我的Ajax调用如下所示。 我也尝试复制POSTMAN使用的确切头文件,它具有Authorization标头集(我现在已在AWS中关闭)但我总是得到相同的错误 var awsHeaders = {}; awsHeaders[‘X-Amz-Date’] = ‘20161127T171734’; $(‘#add, #cloud’).click(function() { $.ajax({ type: ‘GET’, headers: awsHeaders, dataType : […]

Rails使用aws-sdk gem和heroku上的jQuery-File-Upload直接进入S3上传

我正在尝试使用jQuery-File-Upload和aws-sdk gem直接在Rails中实现Amazon S3上传,并遵循heroku直接到S3上传说明。 这是在html中生成的上传表单: 这是相应的jQuery: $(function() { $(‘.directUpload’).find(“input:file”).each(function(i, elem) { var fileInput = $(elem); var form = $(fileInput.parents(‘form:first’)); var submitButton = form.find(‘input[type=”submit”]’); var progressBar = $(“”); var barContainer = $(“”).append(progressBar); fileInput.after(barContainer); fileInput.fileupload({ fileInput: fileInput, url: form.data(‘url’), type: ‘POST’, autoUpload: true, formData: form.data(‘form-data’), paramName: ‘file’, // S3 does not like nested name fields ie name=”user[avatar_url]” dataType: […]