azuracast/flysystem-v2-extensions

此包已被废弃,不再维护。没有建议的替代包。

扩展 Flysystem V2 功能。

1.0.0 2021-06-21 02:10 UTC

This package is auto-updated.

Last update: 2022-12-08 22:31:59 UTC


README

此库包含用于Flysystem文件抽象库版本2的扩展功能。

许多功能旨在恢复类似于 Flysystem V1 的用户体验,并允许更容易地为第三方目的定制 Flysystem。

扩展类中的任何部分都可以与基础 Flysystem 类互换使用。

新增功能

扩展适配器

  • getMetadata 函数:支持适配器已添加 getMetadata 调用来替代单独的元数据调用,与 Flysystem 1.x 的功能保持一致。这也减少了如果需要文件的完整元数据并使用 getMetadata 函数在文件系统级别时,冗余的 API 调用。

  • 延迟加载 StorageAttributes:为了确保所有元数据都可在 StorageAttributes 返回对象中可用,即使某些项目可能计算成本较高,一些元数据属性可以提供为可调用的函数,在调用时解析。目前这仅适用于 visibility 属性,因为它是计算成本最高的一个。

  • 磁盘适配器优化:本地、磁盘适配器实现了一个新的 LocalAdapterInterface,只有一个方法:getLocalPath;如果您的应用程序内置了对磁盘文件系统的优化,这允许您立即确定您使用的文件系统是否在磁盘上。

文件系统变更

  • 公开了额外的元数据函数

    • getMetadata 返回一个对象中的任何可用 StorageAttributes
    • isFile,对应于 StorageAttributes 中的 isFile() 函数
    • isDir,对应于 StorageAttributes 中的 isDir() 函数
  • 公开了一个新方法,getAdapter,允许直接访问底层适配器接口。

  • 辅助类和方法,以进一步区分本地和远程文件系统

    • LocalFilesystem,用于与 LocalFilesystemAdapter 一起使用
    • RemoteFilesystem,带有一个可选的 $local_path 参数,用于远程适配器,这些适配器可能仍然需要创建一个临时本地文件来与其他脚本交互
    • upload,一个辅助工具,用于从本地磁盘复制到目标文件系统
    • download,一个辅助工具,用于从源文件系统复制到本地磁盘
    • withLocalFile,一个辅助工具,它提供一个带有文件路径的可调用函数,该文件路径保证是在磁盘上的,即使文件系统本身是远程的。

支持的适配器

目前,此库是一个包含所有适配器的单仓库,这些适配器用于使用此库的主要应用程序

  • 本地:本地、磁盘文件系统。
  • AwsS3:支持 AWS S3 存储API的远程文件系统。
  • Dropbox:Dropbox应用程序上的云存储远程文件系统。