【问题标题】:Rails image upload API without save data in database and return nameRails图像上传API,无需在数据库中保存数据并返回名称
【发布时间】:2019-09-02 02:03:00
【问题描述】:

我想使用带有 S3 的 CarrierWave 创建一个用于图像上传的 API。正常文件上传工作,但我想创建一个用于上传图像并返回图像 URL 的 API,不需要在数据库表中使用相同的名称。

我该怎么做?

【问题讨论】:

    标签: ruby-on-rails api amazon-s3 ruby-on-rails-5 carrierwave


    【解决方案1】:

    您需要在 gemfile 中包含以下 gem, gem 'aws-sdk', '~> 3'

    并在控制器中使用以下代码(使用 APIS)

    require 'aws-sdk-s3'
    class Api::V1::UploaderController < ApplicationController
        def create
            file = uploader_params[:image_url]
            file_name =   "#{file.original_filename}"
            upload_file = file.tempfile
            s3 = Aws::S3::Resource.new(region: ENV['AWS_REGION'],access_key_id: ENV['AWS_ACCESS_KEY'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'] )
    
            obj = s3.bucket(ENV['AWS_BUCKET_NAME']).object(file_name)
            obj.upload_file(upload_file, { acl: 'public-read' })
            success(data: obj.public_url, status: 200)
        end
    end
    

    【讨论】:

      猜你喜欢
      • 2014-08-09
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 2023-04-05
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      相关资源
      最近更新 更多