我已经使用 rumbda Gem 将我的 ruby 代码部署为 AWS Lambda 函数,现在我想将用户重定向到在这种情况下的 URL obj.public_url
.我没有使用Rails或任何其他框架。
以下是我的脚本:
params = JSON.parse ARGV[0]
url = params["queryStringParameters"].fetch("key")
puts "url is #{url}"
image = MiniMagick::Image.open(url)
image.resize "200x200"
image.format "jpg"
s3 = Aws::S3::Resource.new(region: ENV['AWS_REGION'])
file_name = "uploads/images/#{File.basename url}"
obj = s3.bucket(ENV['BUCKET']).object(file_name)
obj.upload_file(image.path)
puts "the public url is #{obj.public_url}"
任何帮助将不胜感激。
我找到了修复程序,我在 JSON 转储中添加了位置标头并被重定向到新源,下面是代码:
File.open(ENV['RUMBDA_RESULT_JSON_FILENAME'], 'w') do |file|
file.write(JSON.dump({ statusCode: 302, body: obj.public_url, :headers => { 'Content-Type' => 'application/json', 'Location' => obj.public_url }}))
end
希望有一天这对某人有所帮助!
重定向是状态代码 302,而不是 200