FileSystem
是一个抽象文件系统 API,LocalFileSystem
是访问本地机器上文件的实现。SubTreeFileSystem
是一种在预置固定基本路径后委托给另一个实现的实现。
工厂
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 时要使用的代理的 URI。background_writes
:逻辑值,OutputStream
写入是否将在后台发出,而不会阻塞(默认为TRUE
)。allow_bucket_creation
:逻辑值,如果为 TRUE,则如果在存储桶级别调用$CreateDir()
,文件系统将创建存储桶(默认为FALSE
)。allow_bucket_deletion
:逻辑值,如果为 TRUE,则如果在存储桶级别调用$DeleteDir()
,文件系统将删除存储桶(默认为FALSE
)。request_timeout
:Windows 和 macOS 上的套接字读取时间(以秒为单位)。如果为负数,则使用 AWS SDK 默认值(通常为 3 秒)。connect_timeout
:套接字连接超时(以秒为单位)。如果为负数,则使用 AWS SDK 默认值(通常为 1 秒)。
GcsFileSystem$create()
可选择接受参数
anonymous
:逻辑值,默认为FALSE
。如果为 true,将不会尝试使用标准 GCS 配置方法查找凭据。access_token
:用于身份验证的可选字符串。应与expiration
一起提供。expiration
:POSIXct
。表示access_token
过期时间的可选日期时间。json_credentials
:用于身份验证的可选字符串。可以是包含 JSON 凭据的字符串,也可以是文件系统上凭据位置的路径。如果给出了凭据路径,则文件应采用 UTF-8 编码。endpoint_override
:如果非空,将连接到提供的å主机名/端口(例如“localhost:9001”),而不是默认的 GCS 主机名/端口。这主要用于测试目的。scheme
:连接传输方式(默认为“https”)。default_bucket_location
:创建新存储桶的默认位置(或“区域”)。retry_limit_seconds
:如果文件系统遇到错误,则花费在重试上的最长时间。默认为 15 秒。default_metadata
:在新对象中写入的默认元数据。project_id
:用于创建存储桶的项目。
方法
path(x)
:从当前FileSystem
创建一个以指定路径x
为根的SubTreeFileSystem
。cd(x)
:从当前FileSystem
创建一个以指定路径x
为根的SubTreeFileSystem
。ls(path, ...)
:列出给定路径下的文件或对象,如果未提供path
,则列出FileSystem
根目录下的文件或对象。传递给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”。