PHPackages                             raypower/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. [API Development](/categories/api)
4. /
5. raypower/upyun

ActiveLibrary[API Development](/categories/api)

raypower/upyun
==============

UpYun api component for laravel 4

5852[1 issues](https://github.com/raykwok/laravel4-upyun/issues)PHP

Since Jun 2Pushed 11y ago1 watchersCompare

[ Source](https://github.com/raykwok/laravel4-upyun)[ Packagist](https://packagist.org/packages/raypower/upyun)[ RSS](/packages/raypower-upyun/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (1)Used By (0)

又拍云PHP SDK FOR LARAVEL4
=======================

[](#又拍云php-sdk-for-laravel4)

基于 [又拍云存储PHP SDK](https://github.com/upyun/php-sdk/) 开发。

使用说明
----

[](#使用说明)

### 安装

[](#安装)

添加以下代码到composer.json的require段中

```
"raypower/upyun": "dev-master",

```

执行

```
composer update

```

### 配置

[](#配置)

Service Provider

```
'Raypower\Upyun\UpyunServiceProvider',

```

Alias

```
'Upyun' => 'Raypower\Upyun\UpyunFacade',

```

执行

```
php artisan config:publish raypower/upyun

```

### 配置项

[](#配置项)

- `bucket_name` 为空间名称
- `useranme`、`password` 为授权操作员的账号密码
- `timeout` 为请求超时时间（默认30s）
- `end_point` 为网络接入点

接入点有四个值可选：

- **Upyun::ED\_AUTO** 根据网络条件自动选择接入点
- **Upyun::ED\_TELECOM** 电信接入点
- **Upyun::ED\_CNC** 联通网通接入点
- **Upyun::ED\_CTT** 移动铁通接入点

默认参数为自动选择API接入点。但是我们推荐根据服务器网络状况，手动设置合理的接入点已获取最佳的访问速度。

### 上传文件

[](#上传文件)

```
// 直接传递文件内容的形式上传
Upyun::writeFile('/temp/text_demo.txt', 'Hello World', True);

// 数据流方式上传，可降低内存占用
$fh = fopen('demo.png', 'r');
Upyun::writeFile('/temp/upload_demo.png', $fh, True);
fclose($fh);

```

第三个参数为可选。True 表示自动创建相应目录，默认值为False。

本方法还有一个数组类型的可选参数，用来设置文件类型、缩略图处理等参数。

```
$opts = array(
	Upyun::X_GMKERL_THUMBNAIL => 'square' // 缩略图版本，仅适用于图片空间
);

$fh = fopen('demo.png', 'r');
Upyun::writeFile('/temp/upload_demo.png', $fh, True, $opts);
fclose($fh);

```

该参数可以设置的值还包括：

- Upyun::CONTENT\_TYPE
- Upyun::CONTENT\_MD5
- Upyun::CONTENT\_SECRET
- Upyun::X\_GMKERL\_THUMBNAIL
- Upyun::X\_GMKERL\_TYPE
- Upyun::X\_GMKERL\_VALUE
- Upyun::X\_GMKERL\_QUALITY
- Upyun::X\_GMKERL\_UNSHARP

参数的具体使用方法，请参考 [标准API上传文件](http://wiki.upyun.com/index.php?title=%E6%A0%87%E5%87%86API%E4%B8%8A%E4%BC%A0%E6%96%87%E4%BB%B6)

文件空间上传成功后返回`True`，图片空间上传成功后一数组形式返回图片信息：

```
array(
  'x-upyun-width' => 2000,
  'x-upyun-height' => 1000,
  'x-upyun-frames' => 1
  'x-upyun-file-type' => "JPEG"
)

```

如果上传失败，则会抛出异常。

### 下载文件

[](#下载文件)

```
// 直接读取文件内容
$data = Upyun::readFile('/temp/upload_demo.png');

// 使用数据流模式下载，节省内存占用
$fh = fopen('/tmp/demo.png', 'w');
Upyun::readFile('/temp/upload_demo.png', $fh);
fclose($fh);

```

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

### 创建目录

[](#创建目录)

```
Upyun::mkDir('/demo/');

```

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

### 删除目录或者文件

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

```
Upyun::delete('/demo/'); // 删除目录
Upyun::delete('/demo/demo.png'); // 删除文件

```

删除成功返回True，否则抛出异常。注意删除目录时，`必须保证目录为空` ，否则也会抛出异常。

### 获取目录文件列表

[](#获取目录文件列表)

```
$list = Upyun::getList('/demo/');
$file = $list[0];
echo $file['name'];	// 文件名
echo $file['type'];	// 类型（目录: folder; 文件: file）
echo $file['size'];	// 尺寸
echo $file['time'];	// 创建时间

```

获取目录文件以及子目录列表。需要获取根目录列表是，使用 `Upyun::getList('/')` ，或直接表用方法不传递参数。 目录获取失败则抛出异常。

### 获取文件信息

[](#获取文件信息)

```
$result = Upyun::getFileInfo('/demo/demo.png');
echo $result['x-upyun-file-type']; // 文件类型
echo $result['x-upyun-file-size']; // 文件大小
echo $result['x-upyun-file-date']; // 创建日期

```

返回结果为一个数组。

### 获取空间使用状况

[](#获取空间使用状况)

```
Upyun::getBucketUsage();	// 获取Bucket空间使用情况

```

返回的结果为空间使用量，单位 ***Byte***

异常处理
----

[](#异常处理)

当API请求发生错误时，SDK将抛出异常，具体错误代码请参考 [标准API错误代码表](http://wiki.upyun.com/index.php?title=%E6%A0%87%E5%87%86API%E9%94%99%E8%AF%AF%E4%BB%A3%E7%A0%81%E8%A1%A8)

根据返回HTTP CODE的不同，SDK将抛出以下异常：

- **UpYunAuthorizationException** 401，授权错误
- **UpYunForbiddenException** 403，权限错误
- **UpYunNotFoundException** 404，文件或目录不存在
- **UpYunNotAcceptableException** 406， 目录错误
- **UpYunServiceUnavailable** 503，系统错误

未包含在以上异常中的错误，将统一抛出 `UpYunException` 异常。

为了真确处理API请求中可能出现的异常，建议将API操作放在`try{...}catch(Exception $e){…}` 块中

```
try{
	Upyun::getFolderUsage('/demo/');
	...
}
catch(Exception $e) {
	echo $e->getCode();		// 错误代码
	echo $e->getMessage();	// 具体错误信息
}

```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance16

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

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://avatars.githubusercontent.com/u/559313?v=4)[Ray Kwok](/maintainers/raykwok)[@raykwok](https://github.com/raykwok)

### Embed Badge

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

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

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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