FileSystem
是一個抽象檔案系統 API,LocalFileSystem
是一個存取本地機器上檔案的實作。SubTreeFileSystem
是一個委派給另一個實作,並在前面加上固定基礎路徑的實作
Factory
LocalFileSystem$create()
返回物件,不接受任何引數。
SubTreeFileSystem$create()
接受以下引數
base_path
,字串路徑base_fs
,一個FileSystem
物件
S3FileSystem$create()
可選地接受引數
anonymous
:邏輯值,預設為FALSE
。如果為 true,將不會嘗試使用標準 AWS 配置方法查找憑證。access_key
、secret_key
:身份驗證憑證。如果提供其中一個,則必須同時提供另一個。如果同時提供兩者,它們將覆蓋在環境層級設定的任何 AWS 配置。session_token
:可選的字串,用於與access_key
和secret_key
一起進行身份驗證role_arn
:AccessRole 的字串 AWS ARN。如果提供此項而不是access_key
和secret_key
,將通過擔任此角色來獲取臨時憑證。session_name
:擔任角色會話的可選字串識別符。external_id
:可選的唯一字串識別符,當您擔任另一個帳戶中的角色時,可能需要此識別符。load_frequency
:整數,從擔任角色會話刷新的臨時憑證的頻率(以秒為單位)。預設值為 900(即 15 分鐘)region
:要連接的 AWS 區域。如果省略,AWS 程式庫將根據用戶端配置提供合理的預設值,如果找不到其他替代方案,則回退到 "us-east-1"。endpoint_override
:如果非空,則使用連接字串(例如 "localhost:9000")覆蓋區域。這對於連接到模擬 S3 的檔案系統非常有用。scheme
:S3 連接傳輸協定(預設為 "https")proxy_options
:可選的字串,連接到 S3 時要使用的代理伺服器的 URIbackground_writes
:邏輯值,OutputStream
寫入是否將在背景中發出,而不會阻塞(預設為TRUE
)allow_bucket_creation
:邏輯值,如果為 TRUE,則當在儲存貯體層級調用$CreateDir()
時,檔案系統將建立儲存貯體(預設為FALSE
)。allow_bucket_deletion
:邏輯值,如果為 TRUE,則當在儲存貯體層級調用$DeleteDir()
時,檔案系統將刪除儲存貯體(預設為FALSE
)。request_timeout
:在 Windows 和 macOS 上,Socket 讀取逾時時間(以秒為單位)。如果為負數,則使用 AWS SDK 預設值(通常為 3 秒)。connect_timeout
:Socket 連接逾時時間(以秒為單位)。如果為負數,則使用 AWS SDK 預設值(通常為 1 秒)。
GcsFileSystem$create()
可選地接受引數
anonymous
:邏輯值,預設為FALSE
。如果為 true,將不會嘗試使用標準 GCS 配置方法查找憑證。access_token
:可選的字串,用於身份驗證。應與expiration
一起提供expiration
:POSIXct
。可選的日期時間,表示access_token
將過期的時間點。json_credentials
:可選的字串,用於身份驗證。可以是包含 JSON 憑證的字串,也可以是其在檔案系統上的位置的路徑。如果給定憑證的路徑,則檔案應為 UTF-8 編碼。endpoint_override
:如果非空,將連接到提供的host name/port,例如 "localhost:9001",而不是預設的 GCS 位址。這主要用於測試目的。scheme
:連接傳輸協定(預設為 "https")default_bucket_location
:用於在新儲存貯體中建立的預設位置(或「區域」)。retry_limit_seconds
:如果檔案系統遇到錯誤,則重試的最大時間量(以秒為單位)。預設值為 15 秒。default_metadata
:要在新物件中寫入的預設元數據。project_id
:用於建立儲存貯體的專案。
方法
path(x)
:從目前FileSystem
建立一個SubTreeFileSystem
,根目錄位於指定的路徑x
。cd(x)
:從目前FileSystem
建立一個SubTreeFileSystem
,根目錄位於指定的路徑x
。ls(path, ...)
:列出給定路徑或FileSystem
根目錄下的檔案或物件(如果未提供path
)。傳遞給FileSelector$create
的其他引數,請參閱 FileSelector。$GetFileInfo(x)
:x
可以是 FileSelector 或字元向量路徑。返回 FileInfo 列表$CreateDir(path, recursive = TRUE)
:建立目錄和子目錄。$DeleteDir(path)
:遞迴地刪除目錄及其內容。$DeleteDirContents(path)
:遞迴地刪除目錄的內容。類似於$DeleteDir()
,但不刪除目錄本身。傳遞空路徑 (""
) 將清除整個檔案系統樹狀結構。$DeleteFile(path)
:刪除檔案。$DeleteFiles(paths)
:刪除多個檔案。預設實作會按順序發出個別的刪除操作。$Move(src, dest)
:移動/重新命名檔案或目錄。如果目的地存在:如果是非空目錄,則返回錯誤;否則,如果它與來源具有相同的類型,則會被替換;否則,行為未指定(取決於實作)。$CopyFile(src, dest)
:複製檔案。如果目的地存在且為目錄,則返回錯誤。否則,它將被替換。$OpenInputStream(path)
:開啟用於循序讀取的 輸入串流。$OpenInputFile(path)
:開啟用於隨機存取讀取的 輸入檔案。$OpenOutputStream(path)
:開啟用於循序寫入的 輸出串流。$OpenAppendStream(path)
:開啟用於附加的 輸出串流。
主動綁定
$type_name
:字串檔案系統類型名稱,例如 "local"、"s3" 等。$region
:字串 AWS 區域,適用於S3FileSystem
和包含S3FileSystem
的SubTreeFileSystem
$base_fs
:對於SubTreeFileSystem
,它包含的FileSystem
$base_path
:對於SubTreeFileSystem
,$base_fs
中的路徑,在此SubTreeFileSystem
中被視為根目錄。$options
:對於GcsFileSystem
,用於建立GcsFileSystem
實例的選項,以list
形式表示
註記
在 S3FileSystem 上,對頂層目錄執行 $CreateDir()
會建立新的儲存貯體。當 S3FileSystem 建立新的儲存貯體時(假設 allow_bucket_creation 為 TRUE),它不會傳遞任何非預設設定。在 AWS S3 中,儲存貯體和所有物件將不會公開可見,並且將沒有儲存貯體策略和資源標籤。為了更好地控制儲存貯體的建立方式,請使用不同的 API 來建立它們。
在 S3FileSystem 上,僅針對嚴重錯誤或在列印返回值時產生輸出。為了進行故障排除,可以使用環境變數 ARROW_S3_LOG_LEVEL
設定日誌層級(例如,Sys.setenv("ARROW_S3_LOG_LEVEL"="DEBUG")
)。必須在執行任何與 S3 交互的代码之前設定日誌層級。可能的值包括 'FATAL'(預設值)、'ERROR'、'WARN'、'INFO'、'DEBUG'(建議)、'TRACE' 和 'OFF'。