跳至内容

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_keysecret_key 一起进行身份验证

  • role_arn: 访问角色的字符串 AWS ARN。 如果提供而不是 access_keysecret_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 和包含 S3FileSystemSubTreeFileSystem

  • $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'。