我正在使用Fog gem生成预签名网址.我可以成功完成此操作以获得对该文件的读取权限.这是我做的:
fog_s3 = Fog::Storage.new({
:provider => 'AWS',
:aws_access_key_id => key,
:aws_secret_access_key => secret
})
object_path = 'foo.wav'
expiry = Date.new(2014,2,1).to_time.to_i
url = fog_s3.directories.new(:key => bucket).files.new(:key => object_path).url(expiry,path_style: true)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试上传文件时,这不起作用.有没有办法指定http动词,所以它将是一个PUT而不是GET?
编辑我看到一个方法:put_object_url这可能会有所帮助.我不知道怎么访问它.
谢谢
根据您的建议编辑:
它有所帮助 - 它给了我一个PUT - 而不是GET.但是,我还有问题.我添加了内容类型:
headers = { "Content-Type" => "audio/wav" }
options = { path_style: true }
object_path = 'foo.wav'
expiry = Date.new(2014,2,1).to_time.to_i
url = fog_s3.put_object_url(bucket,object_path, expiry, headers, options)
Run Code Online (Sandbox Code Playgroud)
但网址中不包含该网址Content-Type.当从HTML中的Javascript完成时,我得到Content-Type了网址,这似乎有效.这是雾的问题吗?或者我的标题不正确?
调查完成后,我希望收到我自己服务的webhook电话.我不想对surveymonkey进行民意调查以获得结果.我注意到这里有一些不起眼的文档:http://help.surveymonkey.com/articles/en_US/kb/WebHook-PUT但它没用.
有没有人有这方面的经验?