簡體   English   中英

如何在Rails 5中使用存儲上載沒有活動記錄的文件?

[英]How to use storage to upload a file without active record in Rails 5?

我是一名PHP程序員,最近開始與ROR合作。
在PHP + Laravel中,有一個非常方便的實現來上傳文件,例如

Storage::disk('my_sftp_server')->put('hello.txt', 'Hello World');

https://laravel.com/docs/5.7/filesystem
my_sftp_serverstorage.yml文件的Laravel版本設置。

由於Laravel完全基於Rails,因此我認為應該采用類似的方法來實現Rails。 但是,當我在Google中搜索Rails Storage時,所有結果都與ActiveStorage有關,在我的情況下,我的文件與我的活動記錄沒有直接關系。

有什么方法可以使用已設置的Rails存儲上載文件?

原因:

我正在開發一個運輸系統,最終我需要創建一個合並的報告,並使用SFTP將其保存在運輸服務器中。

您可以將params項寫入磁盤:

IO.copy_stream(params[:files][0].tempfile, local_filepath)

你問的不是一個好方法。 原因很簡單,每當您存儲在外部存儲器中時,都必須定義各種參數,例如權限,密鑰等。

讓我舉個例子,您現在正在存儲用戶文檔,稍后將存儲與不同對象相關的不同文檔和圖像。 即使您拒絕提供這種相關性,Rails也完全基於面向對象的編程。 因此,您必須為要存儲的任何文檔提供對象引用,以便可以正確檢索它。

回形針是用於它的寶石之一。

要將其存儲在本地應用程序路徑中,

 @user.document.copy_to_local_file(nil, path)

在上面的文檔中,這里可以是attr_accessor對用戶的非db字段。 copy_to_local_file是回形針方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM