有人可以向我展示一个在我的 Rails 表单上传文件后如何获取亚马逊 S3 url 的示例吗?当我使用时,我的应用程序有 filepicker.io/etc/etc url,但我想要实际的 amazon url。
https://github.com/Ink/filepicker-rails#accessing-filepicker-file-with-onchange
有人可以向我展示一个在我的 Rails 表单上传文件后如何获取亚马逊 S3 url 的示例吗?当我使用时,我的应用程序有 filepicker.io/etc/etc url,但我想要实际的 amazon url。
https://github.com/Ink/filepicker-rails#accessing-filepicker-file-with-onchange
好的,我没有完整的答案,但在过去的几天里,我一直在试图弄清楚同样的事情。这是我的表单字段:
<div class="filepicker">
<%= f.label :filepicker_url, "Upload an image:" %>
<%= f.filepicker_field :filepicker_url, dragdrop: true, mimetypes: 'image/*', onchange: 'onImageUpload()', button_class: "btn btn-gray", id: "filepicker" %>
</div>
这是与之配套的js:
var base_url = "https://s3-us-west-2.amazonaws.com/YOUR_S3_BUCKET/"
function onImageUpload() {
filepicker.pickAndStore(
{mimetype:"image/*"},
{location:"S3", access: "public"},
function(InkBlobs){
var key = (JSON.stringify(InkBlobs[0].key));
key = key.replace("\"","");
var url = base_url + key;
$('#filepicker').val(url);
console.log($('#filepicker').val());
},
function(FPError){
console.log(JSON.stringify(FPError));
});
}
这是为了将您的文件/图像存储在您自己的 s3 存储桶中并直接使用该 url(减少对墨水的依赖)。S3 url 是您的基本 url 加上 InkBlob 中返回的 s3 密钥。我正在尝试使用 jquery 将 url 插入到我的输入字段中......但由于某些未知原因,它不会与我的用户一起保存。我可以看到它正在使用 console.log 在我的输入字段中输入,但不知道为什么它没有被保存。
我也遇到了与 iframe 不匹配的协议(http 与 https)的问题。尽管我还不能存储 filepicker_url,但我一直在阅读有关 turbolinks 的问题。
无论如何,希望这对一些人有所帮助。让我知道你是否知道更多。