通过邮递员通过 API 使用 Rails 主动存储上传文件(.pdf、.jpg 等)? (不通过 Rails 视图)
Posted
技术标签:
【中文标题】通过邮递员通过 API 使用 Rails 主动存储上传文件(.pdf、.jpg 等)? (不通过 Rails 视图)【英文标题】:upload a file(.pdf, .jpg etc) using rails active storage via API through postman? (not through rails views) 【发布时间】:2020-07-29 06:28:21 【问题描述】:我看到 N 个关于使用 rails 视图 将文件上传到本地活动存储、S3 等的教程。但是我找不到关于如何通过 API 将文件上传到活动存储的合法来源说通过邮递员,比如通过邮递员通过 API 传递附件需要什么先决条件?
让我详细说明一下。
第 1 步: 通过 React 或任何前端框架,我将选择一个要上传的文件(一个 .PDF 文件),最终它应该保存在某个地方。
第 2 步:这个选择的文件应该作为 API 传递给后端服务,在后端服务中选择的文件的存储将保存在 AWS S3 之类的存储中。
如何发送 API 请求来存储文件?有人可以帮我解决吗?
【问题讨论】:
【参考方案1】:做起来很简单 打开邮递员 转到正文-> 表单数据 之后,将鼠标移至关键字段,您将找到 File 选项
然后你必须选择文件并发送请求
或者像这样发送原始 JSON 对象中的文件路径 然后在后端创建对象,如果文件对象为空,则检查文件对象,然后像这样发送路径
// For Temporary Use Over Back End Only NOT NEED To Send These
"file_path" : "/home/jolly/Downloads/pdf/pdf-5.pdf",
"file_name" : "pdf-5.pdf"
然后在代码中使用它来创建你传递的文件对象,你需要保存 s3 或 rails 存储
file_path = params[:file_path]
file_name = params[:file_name]
image_path = Rails.root+file_path
image_file = File.new(image_path)
【讨论】:
以上是关于通过邮递员通过 API 使用 Rails 主动存储上传文件(.pdf、.jpg 等)? (不通过 Rails 视图)的主要内容,如果未能解决你的问题,请参考以下文章
Rails 6主动存储sidekiq文件在S3上上传背景图片