PHPackages                             fazi/think-oss - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. fazi/think-oss

ActiveLibrary[File &amp; Storage](/categories/file-storage)

fazi/think-oss
==============

阿里云OSS SDK for ThinkPHP6/8

v1.1(2y ago)712.3k—5%[1 PRs](https://github.com/Fazime/think-oss/pulls)MITPHPPHP &gt;=7.1.0|&gt;=8.0.0

Since Sep 4Pushed 1y ago2 watchersCompare

[ Source](https://github.com/Fazime/think-oss)[ Packagist](https://packagist.org/packages/fazi/think-oss)[ RSS](/packages/fazi-think-oss/feed)WikiDiscussions master Synced yesterday

READMEChangelog (5)Dependencies (2)Versions (12)Used By (0)

阿里云OSS SDK for ThinkPHP6
========================

[](#阿里云oss-sdk-for-thinkphp6)

概述
--

[](#概述)

本包封装了Aliyun官方发布的SDK，使得能在ThinkPHP6里快速使用。适用于单个或多个BUCKET间操作。

安装
--

[](#安装)

- 运行 ***composer*** 命令:

    ```
      composer require fazi/think-oss

    ```

    或者在根目录的 `composer.json` 文件中添加：

    ```
      "require": {
          "fazi/think-oss": "^1.0"
      }

    ```

    然后运行命令 `composer install` 安装依赖。
- 依赖安装成功后，ThinkPHP6 根目录运行

    ```
    php think oss:init

    ```

    将在 ***.env*** 中添加 OSS的endpoint配置，并在 全局config 目录下生成 oss.php 配置文件。

快速使用
----

[](#快速使用)

- 配置

    ***.env*** 里配置好阿里云endpoint （在阿里云同区ECS环境可设成内网地址）

    ***/config/oss.php*** 阿里云子accessKeyIds相关配置

    配置文件说明

    ```
     return [
         //设置endpoint 默认公网，同区ECS可使用内网地址流量免费
          'endpoint'      => Env::get('OSS_ENDPOINT'),
          //推荐使用子用户access key
          'accessKeyId'  => '',
          'accessKeySecret'  => '',
         //默认Bucket 实际业务可能用到多个BUCKET
          'bucket'  => [
             'default' => '',#默认
             'custom' => '',#自定义
          ],
      ];

    ```
- 目前未集成ThinkPHP6上传功能。所以需要在需要OSS上传的时候调用。

    ```
     use fazi\oss\OSS;

     $local = 'test/test.txt';
     $content = file_get_contents($local);
     $object = 'yun/test.txt';

     //实例并调用
     $oss = (new OSS());
     //常用方法1：从内存直接上传
     $oss->put($content, $object);

     //切换bucket
     $oss->setBucket('custom');#配置文件中自定义名，不存在则取该值
     //或者直接赋值
     $oss->bucket = \think\facade\Config::get('oss.bucket.custom');

     //常用方法2：选择本地文件上传
     $oss->upload($local, $object);

     //常用方法3.1：读取云文件到内存
     $data = $oss->read($object);

     //常用方法3.2：直接保存云文件到本地（可选样式）
     //样式：image/resize,m_fixed,w_100,h_100/rotate,90| style/样式名
     $data = $oss->read($object, $style, $local);

     //常用方法4：复制云到云（支持不同Bucket间操作）
     $oss->copy($to_object, $from_object, $form_bucket);#$form_bucket为配置文件中自定义的键值，不存在则取该值。为空则为当前BUCKET。

    ```
- 支持facade调用(使用默认‘default’ bucket):

    ```
     use fazi\oss\facade\OSS;
     OSS::upload($local,$object);

    ```
- 类继承了SDK的OssClient ，所以可以正常调用SDK的方法:

    ```
     $oss = (new OSS());
     $oss->putObject($bucket, $object, $content, $options);

    ```
- 异常抛出实例为 OssException ，请在ThinkPHP6 ***app/ExceptionHandle.php*** 中做好异常接管，类似

    ```
     // OSS异常
     if ($e instanceof OssException) {
         return json($e->getError(), 501);
     }

    ```

更新
--

[](#更新)

2024-05-30 更新依赖到thinkphp8.0 2021-06-07 read方法增加参数（样式、本地路径、自定义参数）
2021-01-29 增加方法delete删除对象（支持单个或多个对象）
2020-11-19 增加方法dir遍历目录（目录或文件列表）
2020-11-12 增加方法has判断对象是否存在
2020-07-22 增加方法read和copy。因为已经开始用TP6重构之前的项目。故会继续更新。分享总结我使用OSS的经验

后言
--

[](#后言)

官方SDK已经非常完善，本包没有缩减任何官方SDK的功能，只是封装并简化一些个人经常使用总结出来的方法。目前只推出 put 和 upload 方法。 今后一定会丰富完善的。感谢大家的支持。欢迎访问我的个人主页

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance27

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~192 days

Recently: every ~323 days

Total

10

Last Release

764d ago

Major Versions

v0.3 → v1.02020-07-21

PHP version history (2 changes)v0.1PHP &gt;=7.1.0

v1.1PHP &gt;=7.1.0|&gt;=8.0.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/86837880?v=4)[fazi](/maintainers/fazi)[@Fazi](https://github.com/Fazi)

---

Top Contributors

[![Fazime](https://avatars.githubusercontent.com/u/15311147?v=4)](https://github.com/Fazime "Fazime (29 commits)")

---

Tags

ossthinkphp

### Embed Badge

![Health badge](/badges/fazi-think-oss/health.svg)

```
[![Health](https://phpackages.com/badges/fazi-think-oss/health.svg)](https://phpackages.com/packages/fazi-think-oss)
```

###  Alternatives

[jacobcyl/ali-oss-storage

aliyun oss filesystem storage for laravel 5+

537573.2k7](/packages/jacobcyl-ali-oss-storage)[iidestiny/flysystem-oss

Flysystem adapter for the Oss storage.

96640.6k29](/packages/iidestiny-flysystem-oss)[yangyifan/upload

上传 SDK for Laravel

12422.7k3](/packages/yangyifan-upload)[alphasnow/aliyun-oss-flysystem

Flysystem adapter for the Aliyun storage

14282.5k9](/packages/alphasnow-aliyun-oss-flysystem)[luoyy/ali-oss-storage

aliyun oss filesystem storage for laravel 10+

1531.0k1](/packages/luoyy-ali-oss-storage)[summergeorge/ali-oss-storage

aliyun oss filesystem storage for laravel 5+

3915.6k](/packages/summergeorge-ali-oss-storage)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
