How can I develop an API in Rail, which uploads the file directly to S3? Whatever I can get through search and using jQuery through existing gems, which can not clearly work with my API.
I am currently using a paperclip to upload, but it locks a unicorn process while the file has been uploaded.
I am working on a project that has the same requirements and used the solution I have Client (an iOS app in my case) uploads the file directly to a temporary folder in our S3 bucket.
Consistent with the paperclip attachment, its model is called asset
, which we currently do:
- Customers S3 uploads the desired file li>
- If the upload is successful, then the client ping the file passing the details of the file location.
- In our case the API creates / updates the
property
model, the path to download the S3 file and the immediate return - We will then bring and process the file to our S3 bucket to launch a delayed job process for the API server.
- Once the processing is finished we remove the temp file from the S3 bucket.
Here is some pseudo code
Customer upload file S3 (Our case using ASWs ISSK)
[[BSAWSWPWPRPRRRAWWSWPRP] UploadFileTubket: URL PROGRESSBOCK: ... AgreementBLOCK: ...]
Send details in uploaded file API
post "server .com / api / assets "parameter: {...," s3_upload_path "= & gt; "Temp / UEA8zLE7FJ.m4v"}
API Controller
Create a DRF # Make arguments here @ asset.delay.fetch_s3_upload termination
property of the class has_attached_file: video ... def fetch_s3_upload url = "http: // # {ENV ['AWS_S3_HOST_NAME']} / # {ENV [ AWS_S3_BUCKET_NAME ']} / # {self.s3_upload_path} "auto .video = URI.parse (url) self.video_content_type =" video / mp4 "if self.save # s3 delete the temp file from the end of the end
No comments:
Post a Comment