Rails 图片上传 API 没有在数据库中保存数据和 return 名称

Rails image upload API without save data in database and return name

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

我该怎么做?

您需要在 gem 文件中包含以下 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