Skip to content

Latest commit

 

History

History
567 lines (307 loc) · 12.1 KB

doc.md

File metadata and controls

567 lines (307 loc) · 12.1 KB

SDK 文档

又拍云 php sdk 中所有封装的接口,均通过 Upyun\Upyun 类封装,后续新版本也会保持 该类方法向下兼容,sdk 中其他类及其方法不保证兼容性。如果有使用疑问欢迎提 issues

方法列表

Upyun

Upyun\Upyun 类实现了又拍云云存储和云处理的所有接口,通过该类可以实现文件上传、下载;图片视频等多媒体资源云处理。 本文档中,提到的"服务"是指又拍云文件加速回又拍云源类型的服务(即原先的存储类服务)。

  • 命名空间: \Upyun\Upyun

__construct

Upyun constructor.

Upyun::__construct( \Upyun\Config $config )

参数列表:

  • \Upyun\Config $config 服务配置

setConfig

更新服务配置

Upyun::setConfig( \Upyun\Config $config )

当需要操作的新的服务时,使用该方法传入新的服务配置即可

参数列表:

  • \Upyun\Config $config 服务配置

write

上传一个文件到又拍云存储

Upyun::write( string $path, string|resource $content, array $params = array(), boolean $withAsyncProcess = false )

上传的文件格式支持文件流或者字符串方式上传。除简单的文件上传外,针对多媒体资源(图片、音视频),还可以设置同步/异步预处理多媒体资源,例如:图片的裁剪缩放,音视频的转码截图等等众多又拍云强大的云处理功能

参数列表:

  • string $path
    被上传的文件在又拍云存储服务中保存的路径

  • string|resource $content
    被上传的文件内容(字符串),或者打开该文件获得的文件句柄(文件流)。当上传本地大文件时,推荐使用文件流的方式上传

  • array $params
    上传文件时,附加的自定义参数。支持 Content-MD5 Content-Type Content-Secret 等,详见 上传参数,例如:

    • 设置文件保护秘钥 write($path, $content, array('Content-Secret' => 'my-secret'))
    • 添加文件元信息 write($path, $content, array('X-Upyun-Meta-Foo' => 'bar'))
    • 图片同步预处理 write($path, $content, array('x-gmkerl-thumb' => '/format/png'))
  • boolean $withAsyncProcess
    默认为 false,当上传图片或者音视频资源时,可以设置该参数为 true,开启图片音视频的异步处理功能 ,例如:

    // 以下参数会将新上传的图片,再异步生成另一份 png 格式的图片,原图不受影响
    write($path, $content, array(
       'apps' => array(
           array(
               'name' => 'thumb',         //异步图片处理任务
               'x-gmkerl-thumb' => '/format/png', // 格式化图片为 png 格式
               'save_as': '/iamge/png/new.png',   // 处理成功后的图片保存路径
               'notify_url': 'http://your.notify.url'  // 异步任务完成后的回调地址
           )
       )
    ), true);
    

返回值:

若文件是图片则返回图片基本信息,如:array('x-upyun-width' => 123, 'x-upyun-height' => 50, 'x-upyun-frames' => 1, 'x-upyun-file-type' => 'JPEG'),否则返回空数组。当使用异步预处理功能时,返回结果为布尔值,成功为 true


read

读取云存储文件/目录内容

Upyun::read( string $path, resource $saveHandler = NULL, array $params = array() )

参数列表:

  • string $path
    又拍云存储中的文件或者目录路径

  • resource $saveHandler
    文件内容写入本地文件流。例如 $saveHandler = fopen('/local/file', 'w') 。当设置该参数时,将以文件流的方式,直接将又拍云中的文件写入本地的文件流,或其他可以写入的流

  • array $params
    可选参数,读取目录内容时,需要设置三个参数: X-List-Iter 分页开始位置(第一页不需要设置),X-List-Limit 获取的文件数量(默认 100,最大 10000),X-List-Order 结果以时间正序或者倒序

返回值:

$return 当读取文件且没有设置 $saveHandler 参数时,返回一个字符串类型,表示文件内容;设置了 $saveHandler 参数时,返回布尔值 true。当读取目录时,返回一个数组,表示目录下的文件列表。目录下文件内容过多时,需要通过判断返回数组中的 is_end 属性,进行分页读取内容


has

判断文件是否存在于又拍云存储

Upyun::has( string $path )

注意: 对刚删除的文件, 立即调用该方法可能会返回 true, 因为服务端执行删除操作后可能会有很短暂的延迟.

参数列表:

  • string $path
    云存储的文件路径

返回值:

存在时返回 true,否则返回 false


info

获取云存储文件/目录的基本信息

Upyun::info( string $path, array $otherHeaders)

参数列表:

  • string $path
    云存储的文件路径

  • string $otherHeaders
    设置了后,方法将返回其他 http header 中的信息,默认为空

返回值:

返回一个数组,默认包含以下 key

  • x-upyun-file-type 当 $path 是目录时,值为 folder,当 $path 是文件时,值为 file
  • x-upyun-file-size 文件大小
  • x-upyun-file-date 文件的创建时间

getMimetype

获取云存储文件的文档类型

Upyun::getMimetype( string $path )

参数列表:

  • string $path
    云存储的文件路径

返回值:

文档类型,e.g: appcation/json,获取失败返回空字符串


delete

删除文件或者目录

Upyun::delete( string $path, boolean $async = false )

参数列表:

  • string $path
    文件或目录在又拍云存储的路径

  • boolean $async
    是否异步删除,默认为 false,表示同步删除。当需要批量删除大量文件时,必须选择异步删除

返回值:

删除成功返回 true,否则 false


createDir

创建目录

Upyun::createDir( string $path )

参数列表:

  • string $path
    需要在又拍云存储创建的目录路径

返回值:

创建成功返回 true,否则返回 false


deleteDir

删除文件或者目录

Upyun::deleteDir( string $path )

参数列表:

  • string $path
    需要被删除的云存储文件或目录路径

返回值:

成功返回 true,否则 false


usage

获取目录下存储使用量

Upyun::usage( string $path = '/' )

参数列表:

  • string $path
    云存储目录路径,默认为根目录,表示整个云存储服务使用的空间大小

返回值:

存储使用量,单位字节


copy

复制文件。只能操作文件,不能操作文件夹。

Upyun::copy( string $source, string $target )

参数列表:

  • string $source 源文件地址
  • string $target 目标文件地址

返回值:

复制成功返回 true,否则返回 false


move

移动文件。可以进行文件重命名、文件移动,只能操作文件,不能操作文件夹。

Upyun::move( string $source, string $target )

参数列表:

  • string $source 需要移动的文件地址
  • string $target 目标文件地址

返回值:

移动成功返回 true,否则返回 false


purge

刷新缓存

Upyun::purge( array|string $urls )

参数列表:

  • array|string $urls
    需要刷新的文件 url 列表

返回值:

刷新失败的 url 列表,若全部刷新成功则为空数组


process

异步云处理

Upyun::process( array $tasks, string $type, string $source )

该方法是基于又拍云云处理 服务实现,可以实现音视频的转码、切片、剪辑;文件的压缩解压缩;文件拉取功能

注意:

  • 所有需要调用该方法处理的资源,必须已经上传到云存储服务
  • 使用 process 之前,必须配置 config->processNotifyUrl,否则会提交任务失败

例如视频转码:

 process(array(
   array(
       'type' => 'video',  // video 表示视频任务, audio 表示音频任务
       'avopts' => '/s/240p(4:3)/as/1/r/30', // 处理参数,`s` 表示输出的分辨率,`r` 表示视频帧率,`as` 表示是否自动调整分辨率
       'save_as' => '/video/240/new.mp4', // 新视频在又拍云存储的保存路径
   ),
   ... // 同时还可以添加其他任务
), Upyun::$PROCESS_TYPE_MEDIA, $source)

注意,被处理的资源需要已经上传到又拍云云存储

参数列表:

  • array $tasks
    需要处理的任务

  • string $type
    异步云处理任务类型,可选值:

    • Upyun::$PROCESS_TYPE_MEDIA 异步音视频处理
    • Upyun::$PROCESS_TYPE_ZIP 文件压缩
    • Upyun::$PROCESS_TYPE_UNZIP 文件解压
    • Upyun::$PROCESS_TYPE_SYNC_FILE 文件拉取
    • Upyun::$PROCESS_TYPE_STITCH 图片拼接
  • string $source
    可选参数,处理异步音视频任务时,需要传递该参数,表示需要处理的文件路径

返回值:

任务 ID,提交了多少任务,便会返回多少任务 ID,与提交任务的顺序保持一致。可以通过任务 ID 查询处理进度。格式如下:

array(
    '35f0148d414a688a275bf915ba7cebb2',
    '98adbaa52b2f63d6d7f327a0ff223348',
)

queryProcessStatus

音视频预处理任务进度查询

Upyun::queryProcessStatus( array $taskIds )

根据 process 方法返回的任务 ID,通过该访问查询处理进度

参数列表:

  • array $taskIds
    任务 ID

返回值:

查询失败返回布尔值 false,否则返回每个任务的百分比进度信息,格式如下:

array(
    '35f0148d414a688a275bf915ba7cebb2' => 100,  // 100 表示任务完成
    'c3103189fa906a5354d29bd807e8dc51' => 35,
    '98adbaa52b2f63d6d7f327a0ff223348' => null, // null 表示任务未开始,或异常
)

queryProcessResult

音视频预处理任务结果查询

Upyun::queryProcessResult( array $taskIds )

根据 process 方法返回的任务 ID,通过该访问查询处理结果,会包含每个任务详细信息

参数列表:

  • array $taskIds
    任务 ID

返回值:

查询失败返回 false,否则返回每个任务的处理结果,格式如下:

array(
   '9d9c32b63a1034834e77672c6f51f661' => array(
        'path' => array('/v2.mp4'),
        'signature' => '4042c1f07f546d28',
        'status_code' => 200,
        'service' => 'your_storage_service',
        'description' => 'OK',
        'task_id' => '9d9c32b63a1034834e77672c6f51f661',
        'timestamp' => 1472010684
   )
)


This document was automatically generated from source code comments on 2017-02-06 using phpDocumentor and cvuorinen/phpdoc-markdown-public