jiangwang/flysystem-tos
Composer 安装命令:
composer require jiangwang/flysystem-tos
包简介
Flysystem adapter for the TOS (Volcengine Object Storage) storage service.
README 文档
README
基于 League\Flysystem 的火山引擎 TOS (字节跳动对象存储) 适配器。
特性
- 完全兼容 Flysystem v3.0+ API
- 支持所有基本的文件操作(读取、写入、删除、复制、移动等)
- 支持文件和目录的可见性设置
- 支持流式上传和下载
- 支持文件元数据操作
- 内置错误处理和异常管理
安装
通过 Composer 安装:
composer require jiangwang/flysystem-tos
要求
- PHP >= 8.0
- League\Flysystem ^3.0
- ext-json
- guzzlehttp/guzzle ^7.8
- league/mime-type-detection ^1.16
使用方法
基本配置
<?php use League\Flysystem\Filesystem; use Jiangwang\FlysystemTos\TosAdapter; // 配置 TOS 客户端 $config = [ 'region' => 'cn-beijing', 'endpoint' => 'https://tos-cn-beijing.volces.com', // 已知 region 时可省略,SDK 会自动补默认 Endpoint 'ak' => 'your-access-key-id', 'sk' => 'your-access-key-secret', 'bucket' => 'your-bucket-name', // 可选配置 'securityToken' => 'your-security-token', // 临时凭证 'connectionTimeout' => 30000, 'socketTimeout' => 30000, ]; // 创建适配器和文件系统 $adapter = new TosAdapter($config); $filesystem = new Filesystem($adapter);
文件操作
写入文件
// 写入字符串内容 $filesystem->write('path/to/file.txt', 'Hello, World!'); // 写入文件流 $stream = fopen('local/file.txt', 'r'); $filesystem->writeStream('path/to/file.txt', $stream); // 设置文件可见性 $filesystem->write('path/to/file.txt', 'content', [ 'visibility' => 'public' // 或 'private' ]);
读取文件
// 读取文件内容 $content = $filesystem->read('path/to/file.txt'); // 读取文件流 $stream = $filesystem->readStream('path/to/file.txt');
文件信息
// 检查文件是否存在 $exists = $filesystem->fileExists('path/to/file.txt'); // 获取文件大小 $size = $filesystem->fileSize('path/to/file.txt'); // 获取文件最后修改时间 $timestamp = $filesystem->lastModified('path/to/file.txt'); // 获取文件 MIME 类型 $mimeType = $filesystem->mimeType('path/to/file.txt'); // 获取文件可见性 $visibility = $filesystem->visibility('path/to/file.txt');
文件管理
// 复制文件 $filesystem->copy('source/file.txt', 'destination/file.txt'); // 移动文件 $filesystem->move('source/file.txt', 'destination/file.txt'); // 删除文件 $filesystem->delete('path/to/file.txt');
目录操作
// 创建目录 $filesystem->createDirectory('path/to/directory'); // 检查目录是否存在 $exists = $filesystem->directoryExists('path/to/directory'); // 列出目录内容 $contents = $filesystem->listContents('path/to/directory'); // 递归列出目录内容 $contents = $filesystem->listContents('path/to/directory', true); // 删除目录 $filesystem->deleteDirectory('path/to/directory');
可见性设置
// 设置文件为公开可读 $filesystem->setVisibility('path/to/file.txt', 'public'); // 设置文件为私有 $filesystem->setVisibility('path/to/file.txt', 'private');
配置选项
适配器支持以下配置选项:
| 配置项 | 类型 | 必需 | 描述 |
|---|---|---|---|
region |
string | 是 | TOS 服务区域 |
endpoint |
string | 否 | TOS 服务端点;已知 region 未传时使用 SDK 内置默认 Endpoint |
ak |
string | 是 | 访问密钥 ID |
sk |
string | 是 | 访问密钥密码 |
bucket |
string | 是 | 存储桶名称 |
securityToken |
string | 否 | 临时访问凭证 |
connectionTimeout |
int | 否 | 连接超时时间(毫秒) |
socketTimeout |
int | 否 | 套接字超时时间(毫秒) |
enableVerifySSL |
bool | 否 | 是否校验 SSL 证书,默认 true |
autoRecognizeContentType |
bool | 否 | 上传对象时是否按对象后缀自动识别 Content-Type,默认 true |
isCustomDomain |
bool | 否 | 是否使用已绑定桶的自定义域名;设为 true 时不会把桶名拼到 Endpoint 前 |
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
相关链接
作者
- jsogn - jbanxian@gmail.com
致谢
- League\Flysystem - 提供优秀的文件系统抽象
- 火山引擎 TOS - 提供可靠的对象存储服务
jiangwang/flysystem-tos 适用场景与选型建议
jiangwang/flysystem-tos 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.01k 次下载、GitHub Stars 达 1, 最近一次更新时间为 2023 年 11 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「filesystem」 「storage」 「adapter」 「tos」 「Flysystem」 「object-storage」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jiangwang/flysystem-tos 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jiangwang/flysystem-tos 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jiangwang/flysystem-tos 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Adapter designed to add Framework Agnosticism for Caching within PHP Packages.
A SDK for working with B2 cloud storage.
A PHP class providing static methods for reading, writing, copying, moving, and deleting files and directories, MIME type detection, image size detection, and file permission management
Small library to access Microsoft Windows Azure Blob Storage with a Service or a StreamWrapper.
flysystem cache Adapter
Virtual Filesystem Storage Adapter for Laravel
统计信息
- 总下载量: 1.01k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 21
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-11-09