雲端與 SFTP 後端

每個後端(Google Drive、S3、Azure Blob、Dropbox、SFTP)皆內建於 automation_file,並由 build_default_registry() 自動註冊。 無須額外安裝步驟——在單例上呼叫 later_init 即可使用:

from automation_file import execute_action, s3_instance

s3_instance.later_init(region_name="us-east-1")

execute_action([
    ["FA_s3_upload_file", {"local_path": "report.csv",
                           "bucket": "reports", "key": "report.csv"}],
])

所有後端都暴露相同的五種操作:upload_fileupload_dirdownload_filedelete_*list_*。如需建立自訂註冊表, register_<backend>_ops(registry) 仍是公開 API。

Google Drive

from automation_file import driver_instance, drive_upload_to_drive

driver_instance.later_init("token.json", "credentials.json")
drive_upload_to_drive("example.txt")

OAuth 憑證以 UTF-8 寫入呼叫方提供的 token_path。 切勿輸出或記錄該檔案內容。

SFTP

SFTPClient 採用 paramiko.RejectPolicy—— 未知主機會被拒絕,而非自動加入。請顯式提供 known_hosts= 或依賴 ~/.ssh/known_hosts。不要為了方便而換成 AutoAddPolicy

跨後端複製

跨後端調度器接受 URI 語法:

from automation_file import execute_action

execute_action([
    ["FA_cross_copy",
     {"src": "s3://reports/2026-04.csv",
      "dst": "drive:///Backups/april.csv"}],
])

URI 前綴:local://s3://drive://sftp://azure://dropbox://ftp://