66use Qiniu \Http \Client ;
77use Qiniu \Http \Error ;
88
9+ /**
10+ * 主要涉及了空间资源管理及批量操作接口的实现,具体的接口规格可以参考
11+ *
12+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/
13+ */
914final class BucketManager
1015{
16+ /**
17+ * @var Qiniu\Auth 账号管理密钥对
18+ */
1119 private $ auth ;
1220
1321 public function __construct (Auth $ auth )
1422 {
1523 $ this ->auth = $ auth ;
1624 }
1725
26+ /**
27+ * 获取指定账号下所有的空间名。
28+ *
29+ * @return string[] 包含所有空间名
30+ */
1831 public function buckets ()
1932 {
2033 return $ this ->rsget ('/buckets ' );
2134 }
2235
36+ /**
37+ * 列取空间的文件列表
38+ *
39+ * @param $bucket 空间名
40+ * @param $prefix 列举前缀
41+ * @param $marker 列举标识符
42+ * @param $limit 单次列举个数限制
43+ * @param $delimiter 指定目录分隔符
44+ *
45+ * @return array[] 包含文件信息的数组,类似:[
46+ * {
47+ * "hash" => "<Hash string>",
48+ * "key" => "<Key string>",
49+ * "fsize" => "<file size>",
50+ * "putTime" => "<file modify time>"
51+ * },
52+ * ...
53+ * ]
54+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/list.html
55+ */
2356 public function listFiles ($ bucket , $ prefix = null , $ marker = null , $ limit = 1000 , $ delimiter = null )
2457 {
2558 $ query = array ('bucket ' => $ bucket );
@@ -44,24 +77,70 @@ public function listFiles($bucket, $prefix = null, $marker = null, $limit = 1000
4477 return array ($ ret ['items ' ], $ marker , null );
4578 }
4679
80+ /**
81+ * 获取资源的元信息,但不返回文件内容
82+ *
83+ * @param $bucket 待获取信息资源所在的空间
84+ * @param $key 待获取资源的文件名
85+ *
86+ * @return array[] 包含文件信息的数组,类似:
87+ * [
88+ * "hash" => "<Hash string>",
89+ * "key" => "<Key string>",
90+ * "fsize" => "<file size>",
91+ * "putTime" => "<file modify time>"
92+ * ]
93+ *
94+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/stat.html
95+ */
4796 public function stat ($ bucket , $ key )
4897 {
4998 $ path = '/stat/ ' . \Qiniu \entry ($ bucket , $ key );
5099 return $ this ->rsGet ($ path );
51100 }
52101
102+ /**
103+ * 删除指定资源
104+ *
105+ * @param $bucket 待删除资源所在的空间
106+ * @param $key 待删除资源的文件名
107+ *
108+ * @return 成功返回NULL,失败返回对象{"error" => "<errMsg string>", ...}
109+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/delete.html
110+ */
53111 public function delete ($ bucket , $ key )
54112 {
55113 $ path = '/delete/ ' . \Qiniu \entry ($ bucket , $ key );
56114 list ($ _ , $ error ) = $ this ->rsPost ($ path );
57115 return $ error ;
58116 }
59117
118+
119+ /**
120+ * 给资源进行重命名,本质为move操作。
121+ *
122+ * @param $bucket 待操作资源所在空间
123+ * @param $oldname 待操作资源文件名
124+ * @param $newname 目标资源文件名
125+ *
126+ * @return 成功返回NULL,失败返回对象{"error" => "<errMsg string>", ...}
127+ */
60128 public function rename ($ bucket , $ oldname , $ newname )
61129 {
62130 return $ this ->move ($ bucket , $ oldname , $ bucket , $ newname );
63131 }
64132
133+ /**
134+ * 给资源进行重命名,本质为move操作。
135+ *
136+ * @param $from_bucket 待操作资源所在空间
137+ * @param $from_key 待操作资源文件名
138+ * @param $to_bucket 目标资源空间名
139+ * @param $to_key 目标资源文件名
140+ *
141+ * @return 成功返回NULL,失败返回对象{"error" => "<errMsg string>", ...}
142+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/copy.html
143+ */
65144 public function copy ($ from_bucket , $ from_key , $ to_bucket , $ to_key )
66145 {
67146 $ from = \Qiniu \entry ($ from_bucket , $ from_key );
@@ -71,6 +150,17 @@ public function copy($from_bucket, $from_key, $to_bucket, $to_key)
71150 return $ error ;
72151 }
73152
153+ /**
154+ * 将资源从一个空间到另一个空间
155+ *
156+ * @param $from_bucket 待操作资源所在空间
157+ * @param $from_key 待操作资源文件名
158+ * @param $to_bucket 目标资源空间名
159+ * @param $to_key 目标资源文件名
160+ *
161+ * @return 成功返回NULL,失败返回对象{"error" => "<errMsg string>", ...}
162+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/move.html
163+ */
74164 public function move ($ from_bucket , $ from_key , $ to_bucket , $ to_key )
75165 {
76166 $ from = \Qiniu \entry ($ from_bucket , $ from_key );
@@ -80,6 +170,16 @@ public function move($from_bucket, $from_key, $to_bucket, $to_key)
80170 return $ error ;
81171 }
82172
173+ /**
174+ * 主动修改指定资源的文件类型
175+ *
176+ * @param $bucket 待操作资源所在空间
177+ * @param $key 待操作资源文件名
178+ * @param $mime 待操作文件目标mimeType
179+ *
180+ * @return 成功返回NULL,失败返回对象{"error" => "<errMsg string>", ...}
181+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/chgm.html
182+ */
83183 public function changeMime ($ bucket , $ key , $ mime )
84184 {
85185 $ resource = \Qiniu \entry ($ bucket , $ key );
@@ -89,6 +189,16 @@ public function changeMime($bucket, $key, $mime)
89189 return $ error ;
90190 }
91191
192+ /**
193+ * 从指定URL抓取资源,并将该资源存储到指定空间中
194+ *
195+ * @param $url 指定的URL
196+ * @param $bucket 目标资源空间
197+ * @param $key 目标资源文件名
198+ *
199+ * @return 成功返回NULL,失败返回对象{"error" => "<errMsg string>", ...}
200+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/fetch.html
201+ */
92202 public function fetch ($ url , $ bucket , $ key )
93203 {
94204 $ resource = \Qiniu \base64_urlSafeEncode ($ url );
@@ -98,6 +208,15 @@ public function fetch($url, $bucket, $key)
98208 return $ error ;
99209 }
100210
211+ /**
212+ * 从镜像源站抓取资源到空间中,如果空间中已经存在,则覆盖该资源
213+ *
214+ * @param $bucket 待获取资源所在的空间
215+ * @param $key 代获取资源文件名
216+ *
217+ * @return 成功返回NULL,失败返回对象{"error" => "<errMsg string>", ...}
218+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/prefetch.html
219+ */
101220 public function prefetch ($ bucket , $ key )
102221 {
103222 $ resource = \Qiniu \entry ($ bucket , $ key );
@@ -106,6 +225,22 @@ public function prefetch($bucket, $key)
106225 return $ error ;
107226 }
108227
228+ /**
229+ * 在单次请求中进行多个资源管理操作
230+ *
231+ * @param $operations 资源管理操作数组
232+ *
233+ * @return 每个资源的处理情况,结果类似:
234+ * [
235+ * { "code" => <HttpCode int>, "data" => <Data> },
236+ * { "code" => <HttpCode int> },
237+ * { "code" => <HttpCode int> },
238+ * { "code" => <HttpCode int> },
239+ * { "code" => <HttpCode int>, "data" => { "error": "<ErrorMessage string>" } },
240+ * ...
241+ * ]
242+ * @link http://developer.qiniu.com/docs/v6/api/reference/rs/batch.html
243+ */
109244 public function batch ($ operations )
110245 {
111246 $ params = 'op= ' . implode ('&op= ' , $ operations );
0 commit comments