如何从 ruby 脚本重定向到 url

how to redirect to a url from ruby script

我已经使用 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}"

如有任何帮助,我们将不胜感激。

重定向是 statusCode 302,而不是 200

我找到了修复,我在 JSON 转储中添加了位置 header 并且它被重定向了 到新的来源,下面是代码:

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

希望有一天这对某人有所帮助!