PHPackages                             xjtuwangke/qiniu-php-sdk - 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. xjtuwangke/qiniu-php-sdk

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

xjtuwangke/qiniu-php-sdk
========================

QINIU SDK forked from qiniu/php-sdk

099[1 issues](https://github.com/xjtuwangke/qiniu-php-sdk/issues)PHP

Since Nov 5Pushed 11y ago1 watchersCompare

[ Source](https://github.com/xjtuwangke/qiniu-php-sdk)[ Packagist](https://packagist.org/packages/xjtuwangke/qiniu-php-sdk)[ RSS](/packages/xjtuwangke-qiniu-php-sdk/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependenciesVersions (1)Used By (0)

Qiniu Resource Storage SDK for PHP
==================================

[](#qiniu-resource-storage-sdk-for-php)

Forked from

许可证
---

[](#许可证)

Copyright (c) 2012-2014 qiniu.com

基于 MIT 协议发布:

- [www.opensource.org/licenses/MIT](http://www.opensource.org/licenses/MIT)

USAGE
-----

[](#usage)

### First of all

[](#first-of-all)

1. 设置access key和secret key

```
\Qiniu\Conf::$QINIU_ACCESS_KEY = 'access key';
\Qiniu\Conf::$QINIU_SECRET_KEY = 'secret key';

```

2. setup a bucket

```
class MyBucket extends \QiniuAPI\QiniuBucket{

    /**
     * 七牛bucket的公共域名，比如bucket1.qiniudn.com或是bucket2.u.quniudn.com
     * @var string | null
     */
    protected static $domain = 'gofarms-dev.qiniudn.com';

    /**
     * 是否是私有bucket
     * @var bool
     */
    protected static $isPrivate = true;

    /**
     * bucket name
     * @var string|null
     */
    protected static $bucketName = 'gofarms-dev';

}

```

### 新建文件实例

[](#新建文件实例)

```
$entry = MyBucket::entry( 'upload/ftp/gofarms-1/测试/qiniu_test.jpg' );

```

获取文件实例的'裸'URL

```
$entry->url();

```

### 文件上传

[](#文件上传)

1. 单个文件上传

    ```

    ```

$put = MyBucket::put( **FILE** , 'test/this.php' ); // MyBucket::entry( 'test/this.php' )-&gt;put( **FILE** ); var\_dump( $put ); /\* array (size=3) 0 =&gt; array (size=2) 'hash' =&gt; string 'FgYSz1zq0d9mT5Nl\_DkFGsuncYRy' (length=28) 'key' =&gt; string 'test/this.php' (length=13) 1 =&gt; null 2 =&gt; object(QiniuAPI\\QiniuEntry)\[9\] protected 'bucket' =&gt; object(MyBucket)\[10\] protected 'key' =&gt; string 'test/this.php' (length=13) \*/

```

1. 查看文件

   ````
$ls = MyBucket::ls( 'test/this.php' );
//MyBucket::entry( 'test/this.php' )->ls();
var_dump( $ls );
/*
array (size=2)
 0 =>
   array (size=4)
     'fsize' => int 1872
     'hash' => string 'FkYSYaJKtvKUwrOQk0D4RqFAIj3W' (length=28)
     'mimeType' => string 'application/x-httpd-php' (length=23)
     'putTime' => int 14152138860482670
 1 => null
*/
   ````

   ```
$ls = MyBucket::ls( 'no-file' );
//MyBucket::entry( 'no-file' )->ls();
var_dump( $ls );
/*
array (size=2)
 0 => null
 1 =>
   object(Qiniu\QiniuError)[12]
     public 'Err' => string 'no such file or directory' (length=25)
     public 'Reqid' => string 'Dl0AAKrY2CCI2aMT' (length=16)
     public 'Details' => string '' (length=0)
     public 'Code' => int 612
*/
    ```

1. 删除文件

```

$rm = MyBucket::delete( 'no-file' ); //or $rm = MyBucket::entry( 'no-file' )-&gt;delete(); var\_dump( $rm ); /\* array (size=2) 0 =&gt; boolean false 1 =&gt; object(Qiniu\\QiniuError)\[11\] public 'Err' =&gt; string 'no such file or directory' (length=25) public 'Reqid' =&gt; string '10MAAGhE77nY2aMT' (length=16) public 'Details' =&gt; string '' (length=0) public 'Code' =&gt; int 612 \*/

```

```

$rm = MyBucket::delete( 'test/this.php' ); //or $rm = MyBucket::entry( 'test/this.php' )-&gt;delete(); var\_dump( $rm ); /\* array (size=2) 0 =&gt; boolean true 1 =&gt; null \*/

```

1. 移动和复制

```

$put = MyBucket::put( **FILE** , 'test/this.php' ); MyBucket::delete( 'test/that.php' ); MyBucket::delete( 'test/that1.php' ); MyBucket::delete( 'test/that2.php' ); MyBucket::delete( 'test/that3.php' ); $copy = MyBucket::entry( 'test/this.php' )-&gt;copy( MyBucket::entry( 'test/that.php' ) ); var\_dump( $copy ); $copy = MyBucket::move( 'test/this.php' , MyBucket::entry( 'test/that.php' ) ); var\_dump( $copy ); $move = MyBucket::entry( 'test/this.php' )-&gt;move( MyBucket::entry( 'test/that2.php') ); var\_dump( $move ); $move = MyBucket::move( 'test/this.php' , MyBucket::entry( 'test/that3.php') ); var\_dump( $move );

```

返回

```

array (size=2) 0 =&gt; boolean true 1 =&gt; null array (size=2) 0 =&gt; boolean false 1 =&gt; object(Qiniu\\QiniuError)\[11\] public 'Err' =&gt; string 'file exists' (length=11) public 'Reqid' =&gt; string 'ak0AAPG88grG36MT' (length=16) public 'Details' =&gt; string '' (length=0) public 'Code' =&gt; int 614 array (size=2) 0 =&gt; boolean true 1 =&gt; null array (size=2) 0 =&gt; boolean false 1 =&gt; object(Qiniu\\QiniuError)\[12\] public 'Err' =&gt; string 'no such file or directory' (length=25) public 'Reqid' =&gt; string '10MAAIK-MhzG36MT' (length=16) public 'Details' =&gt; string '' (length=0) public 'Code' =&gt; int 612

```

### 宏命令

```

\\QiniuAPI\\QiniuFop::marco( 'watermark' , function( \\QiniuAPI\\QiniuEntry $entry ){ $watermark = new \\QiniuAPI\\Watermark\\Watermark(); $image1 = new \\QiniuAPI\\Watermark\\Image(); $gravity1 = new \\QiniuAPI\\Watermark\\Gravity(); $gravity1-&gt;gravity( \\QiniuAPI\\Watermark\\Gravity::Gravity3 )-&gt;dx( 20 )-&gt;dy( 25 ); $image1-&gt;gravity( $gravity1 )-&gt;imageUrl( '[http://www.baidu.com/img/baidu\_jgylogo3.gif](http://www.baidu.com/img/baidu_jgylogo3.gif)' )-&gt;dissolve( 50 ); $watermark-&gt;addParameter( $image1 ); return $entry-&gt;url( \[ $watermark \] ); }); $watermarked = \\QiniuAPI\\QiniuFop::watermark( MyBucket::entry( 'upload/ftp/gofarms-1/测试/qiniu\_test.jpg' ) );

```

```

\\QiniuAPI\\Avthumb\\Avthumb::marco( 'basic' , function(){ $avthumb = new \\QiniuAPI\\Avthumb\\Avthumb(); $avthumb-&gt;format('mp4')-&gt;audioBitRate( '192k' )-&gt;audioSamplingRate( 8000 )-&gt;videoFrameRate( 24 ); return $avthumb; }); $basicThumb = \\QiniuAPI\\Avthumb\\Avthumb::basic(); echo $basicThumb; //avthumb/mp4/ab/192k/ar/8000/r/24/vb/128k //usage:: $url = MyBucket::entry( 'somevideo.mp4' )-&gt;url( \[ \\QiniuAPI\\Avthumb\\Avthumb::basic() \] );

```

### 图像处理

1. 水印接口[watermark](http://developer.qiniu.com/docs/v6/api/reference/fop/image/watermark.html)

    ```
$watermark = new \QiniuAPI\Watermark\Watermark();
$image1 = new \QiniuAPI\Watermark\Image();
$gravity1 = new \QiniuAPI\Watermark\Gravity();
$gravity1->gravity( \QiniuAPI\Watermark\Gravity::Gravity3 )->dx( 20 )->dy( 25 );
$image1->gravity( $gravity1 )->imageUrl( 'http://www.baidu.com/img/baidu_jgylogo3.gif' )->dissolve( 50 );
$text2  = new \QiniuAPI\Watermark\Text();
$gravity2 = new \QiniuAPI\Watermark\Gravity();
$gravity2->gravity( \QiniuAPI\Watermark\Gravity::Gravity9 )->dx( 21 )->dy( 22 );
$text2->gravity( $gravity2 )->text( '测试文字' )->font( '楷体' )->fontSize( 40 )->fill( '#FFFFFF' )->dissolve( 51 );
$watermark->addParameter( $image1 )->addParameter( $text2 );
$url = MyBucket::entry( 'upload/ftp/gofarms-1/测试/qiniu_test.jpg' )->url( [ $watermark ] );

```

1. 基本图片处理[ImageView2](http://developer.qiniu.com/docs/v6/api/reference/fop/image/imageview2.html)

    ```

    ```

$imageView2 = new ImageView2(); $imageView2-&gt;widthAndHeight( 200 ,100 )-&gt;format( 'jpg' )-&gt;interlace( true ); $url = MyBucket::entry( 'upload/ftp/gofarms-1/测试/qiniu\_test.jpg' )-&gt;url( \[ $imageView2 \] ); ```

3. 高级图片处理[imageMogr2](http://developer.qiniu.com/docs/v6/api/reference/fop/image/imagemogr2.html)

    ```

    ```

$imageMog2 = new ImageMogr2(); $quality = new \\QiniuAPI\\ImageMogr2\\Quality(); $blur = new \\QiniuAPI\\ImageMogr2\\Blur(); $format = new \\QiniuAPI\\ImageMogr2\\Format(); $interlace = new \\QiniuAPI\\ImageMogr2\\Interlace(); $rotate = new \\QiniuAPI\\ImageMogr2\\Rotate(); $thumbnail = new \\QiniuAPI\\ImageMogr2\\Thumbnail(); $crop = new \\QiniuAPI\\ImageMogr2\\Crop(); $imageMog2 -&gt;addParameter( $thumbnail-&gt;keepRatio()-&gt;maxWidthAndHeight( 300 , 200 ) ) -&gt;addParameter( $crop-&gt;gravity( \\QiniuAPI\\ImageMogr2\\Crop::Gravity3 )-&gt;cropSize( 100 , 150 )-&gt;dx( -2 )-&gt;dy( 3 ) ) -&gt;addParameter( $quality-&gt;quality( 90 ) ) -&gt;addParameter( $blur-&gt;radius( 20 )-&gt;sigma( 3 ) ) -&gt;addParameter( $format-&gt;format( 'jpg' ) ) -&gt;addParameter( $interlace-&gt;enable() ) -&gt;addParameter( $rotate-&gt;degree( 90 ) ); $url = MyBucket::entry( 'upload/ftp/gofarms-1/测试/qiniu\_test.jpg' )-&gt;url( \[ $imageMog2 \] );

```

4. 图片基本信息[imageInfo](http://developer.qiniu.com/docs/v6/api/reference/fop/image/imageinfo.html)

    ```
$infoArray = MyBucket::entry( 'upload/ftp/gofarms-1/测试/qiniu_test.jpg' )->imageInfo();

```

5. 图片exif信息[exif](http://developer.qiniu.com/docs/v6/api/reference/fop/image/exif.html)

    ```

    ```

$infoArray = MyBucket::entry( 'upload/ftp/gofarms-1/测试/qiniu\_test.jpg' )-&gt;exif();

```

6. 图片主色调[imageAve](http://developer.qiniu.com/docs/v6/api/reference/fop/image/imageave.html)

    ```
$infoArray = MyBucket::entry( 'upload/ftp/gofarms-1/测试/qiniu_test.jpg' )->imageAve();

```

### 音视频

[](#音视频)

1. Avthumb

    \\QiniuAPI\\VFrame\\VFrame

    \\QiniuAPI\\Avthumb\\Avthumb

    其余TBD

    ```

    ```

$avthumb = new \\QiniuAPI\\Avthumb\\Avthumb(); $avthumb-&gt;format('mp4')-&gt;audioBitRate( '192k' )-&gt;audioSamplingRate( 8000 )-&gt;videoFrameRate( 24 );

```

```

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

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/f72b56004ca72fe69a397a63f6bad7beb8d7287e6af77a1460892f8aa6d2773b?d=identicon)[xjtuwangke](/maintainers/xjtuwangke)

---

Top Contributors

[![xjtuwangke](https://avatars.githubusercontent.com/u/1585547?v=4)](https://github.com/xjtuwangke "xjtuwangke (24 commits)")

### Embed Badge

![Health badge](/badges/xjtuwangke-qiniu-php-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/xjtuwangke-qiniu-php-sdk/health.svg)](https://phpackages.com/packages/xjtuwangke-qiniu-php-sdk)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[google/cloud-storage

Cloud Storage Client for PHP

34390.8M125](/packages/google-cloud-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15261.6M2.6k](/packages/illuminate-filesystem)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)

PHPackages © 2026

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