PHPackages                             nidesky/upyun - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. nidesky/upyun

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

nidesky/upyun
=============

upyun sdk

17PHP

Since Aug 28Pushed 10y ago1 watchersCompare

[ Source](https://github.com/nidesky/upyun)[ Packagist](https://packagist.org/packages/nidesky/upyun)[ RSS](/packages/nidesky-upyun/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

UpyunFilesystem for Laravel 5.1
===============================

[](#upyunfilesystem-for-laravel-51)

---

> 本文参考又拍云官方SDK [upyun/php-sdk](https://github.com/upyun/php-sdk)

1. 安装
-----

[](#1-安装)

我们可以添加 `nidesky\upyun` 到 `composer.json` 中：

```
{
    ...
    "require": {
        ...
        "nidesky/upyun": "dev-master"
    },
```

也可以在项目目录中运行 `composer require nidesky/upyun`。

2. 添加配置
-------

[](#2-添加配置)

首先，我们需要 `ServiceProvider` 到 `config/app.php` ：

```
[
	...
	'providers' => [
		...
       Nidesky\Upyun\UpyunFilesystemServiceProvider::class,
		...

    ],
    ...
]
```

然后我们要在 `config/filesystems.php` 中配置又拍云的信息：

```
[
	...
	'disks' => [

        'local' => [
            'driver' => 'local',
            'root'   => storage_path('app'),
        ],

        ...

        'upyun'     => [
            'driver'    => 'upyun',
            'bucket'    => env('UPYUN_BUCKET'),
            'username'  => env('UPYUN_USERNAME'),
            'password'  => env('UPYUN_PASSWORD')
        ]

    ],
]
```

OK , 配置完成！

3. 使用
-----

[](#3-使用)

### 上传文件

[](#上传文件)

文件类空间可以上传任意形式的二进制文件

#### 1. 直接读取整个文件内容:

[](#1-直接读取整个文件内容)

```
$upyun = Storage::disk('upyun');

$upyun->put('/storage/uploads/file.txt', 'file contents');
```

#### 2. 文件流的方式上传，可降低内存占用:

[](#2-文件流的方式上传可降低内存占用)

```
$file_handler = fopen('demo.png', 'r');

$upyun->putStream('/storage/uploads/file.txt', $file_handler);
```

### 下载文件

[](#下载文件)

#### 1.直接读取文件内容:

[](#1直接读取文件内容)

```
$data = $upyun->read('/temp/upload_demo.png');
```

#### 2.使用文件流模式下载:

[](#2使用文件流模式下载)

```
$fh = fopen('/tmp/demo.png', 'w');
$upyun->readStream('/temp/upload_demo.png', $fh);
fclose($fh);
```

直接获取文件时，返回文件内容，使用数据流形式获取时，成功返回true。 如果获取文件失败，则抛出异常。

### 创建目录

[](#创建目录)

```
$upyun->createDir('/demo/');
```

目录路径必须以斜杠 / 结尾，创建成功返回 true，否则抛出异常。

### 删除目录或者文件

[](#删除目录或者文件)

```
$upyun->delete('/demo/'); // 删除目录
$upyun->delete('/demo/demo.png'); // 删除文件
```

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/44feadb3b0eed342760e7ac4bbfd198410c418720aba0c338f65bd3ac831a899?d=identicon)[nidesky](/maintainers/nidesky)

---

Top Contributors

[![nidesky](https://avatars.githubusercontent.com/u/7133406?v=4)](https://github.com/nidesky "nidesky (6 commits)")

### Embed Badge

![Health badge](/badges/nidesky-upyun/health.svg)

```
[![Health](https://phpackages.com/badges/nidesky-upyun/health.svg)](https://phpackages.com/packages/nidesky-upyun)
```

PHPackages © 2026

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