@@ -83,23 +83,142 @@ public function Token($mac) // => $token
8383 }
8484}
8585
86+ // ----------------------------------------------------------
87+ // class Qiniu_RS_EntryPath
88+
89+ class Qiniu_RS_EntryPath
90+ {
91+ public $ bucket ;
92+ public $ key ;
93+ public function __construct ($ bucket , $ key )
94+ {
95+ $ this ->bucket = $ bucket ;
96+ $ this ->key = $ key ;
97+ }
98+ }
99+
100+ // ----------------------------------------------------------
101+ // class Qiniu_RS_EntryPathPair
102+
103+ class Qiniu_RS_EntryPathPair
104+ {
105+ public $ src ;
106+ public $ dest ;
107+ public function __construct ($ src , $ dest )
108+ {
109+ $ this ->src = $ src ;
110+ $ this ->dest = $ dest ;
111+ }
112+ }
113+
86114// ----------------------------------------------------------
87115
88116function Qiniu_RS_Stat ($ self , $ bucket , $ key ) // => ($statRet, $error)
89117{
90118 global $ QINIU_RS_HOST ;
91-
92- $ entryURIEncoded = Qiniu_Encode ("$ bucket: $ key " );
93- return Qiniu_Client_Call ($ self , "$ QINIU_RS_HOST /stat/ $ entryURIEncoded " );
119+ return Qiniu_Client_Call ($ self , $ QINIU_RS_HOST . Qiniu_RS_URIStat ($ bucket , $ key ));
94120}
95121
96122function Qiniu_RS_Delete ($ self , $ bucket , $ key ) // => $error
97123{
98124 global $ QINIU_RS_HOST ;
125+ return Qiniu_Client_CallNoRet ($ self , $ QINIU_RS_HOST . Qiniu_RS_URIDelete ($ bucket , $ key ));
126+ }
127+
128+
129+ function Qiniu_RS_Move ($ self , $ bucketSrc , $ keySrc , $ bucketDest , $ keyDest ) // => $error
130+ {
131+ global $ QINIU_RS_HOST ;
132+ return Qiniu_Client_CallNoRet ($ self , "$ QINIU_RS_HOST " .Qiniu_RS_URIMove ($ bucketSrc , $ keySrc , $ bucketDest , $ keyDest ));
133+ }
134+
135+ function Qiniu_RS_Copy ($ self , $ bucketSrc , $ keySrc , $ bucketDest , $ keyDest ) // => $error
136+ {
137+ global $ QINIU_RS_HOST ;
138+ return Qiniu_Client_CallNoRet ($ self , "$ QINIU_RS_HOST " .Qiniu_RS_URICopy ($ bucketSrc , $ keySrc , $ bucketDest , $ keyDest ));
139+ }
140+
141+
142+ // ----------------------------------------------------------
143+ //batch
144+
145+ function Qiniu_RS_Batch ($ self , $ url ) // => ($data, $error)
146+ {
147+ global $ QINIU_RS_HOST ;
148+ return Qiniu_Client_CallWithForm ($ self , $ QINIU_RS_HOST . "/batch? " , $ url );
149+ }
150+
151+ function Qiniu_RS_BatchStat ($ self , $ entryPaths )
152+ {
153+ $ params = '' ;
154+ foreach ($ entryPaths as $ entryPath ) {
155+ if ($ params === '' ) {
156+ $ params = 'op= ' . Qiniu_RS_URIStat ($ entryPath ->bucket , $ entryPath ->key );
157+ continue ;
158+ }
159+ $ params .= '&op= ' . Qiniu_RS_URIStat ($ entryPath ->bucket , $ entryPath ->key );
160+ }
161+ return Qiniu_RS_Batch ($ self ,$ params );
162+ }
163+
164+ function Qiniu_RS_BatchDelete ($ self , $ entryPaths )
165+ {
166+ $ params = '' ;
167+ foreach ($ entryPaths as $ entryPath ) {
168+ if ($ params == '' ) {
169+ $ params = 'op= ' . Qiniu_RS_URIDelete ($ entryPath ->bucket , $ entryPath ->key );
170+ continue ;
171+ }
172+ $ params .= '&op= ' . Qiniu_RS_URIDelete ($ entryPath ->bucket , $ entryPath ->key );
173+ }
174+ return Qiniu_RS_Batch ($ self , $ params );
175+ }
99176
100- $ entryURIEncoded = Qiniu_Encode ("$ bucket: $ key " );
101- return Qiniu_Client_CallNoRet ($ self , "$ QINIU_RS_HOST /delete/ $ entryURIEncoded " );
177+ function Qiniu_RS_BatchMove ($ self , $ entryPairs )
178+ {
179+ $ params = '' ;
180+ foreach ($ entryPairs as $ entryPair ) {
181+ if ($ params == '' ) {
182+ $ params = 'op= ' . Qiniu_RS_URIMove ($ entryPair ->src ->bucket , $ entryPair ->src ->key , $ entryPair ->dest ->bucket , $ entryPair ->dest ->key );
183+ continue ;
184+ }
185+ $ params .= '&op= ' . Qiniu_RS_URIMove ($ entryPair ->src ->bucket , $ entryPair ->src ->key , $ entryPair ->dest ->bucket , $ entryPair ->dest ->key );
186+ }
187+ return Qiniu_RS_Batch ($ self , $ params );
102188}
103189
190+ function Qiniu_RS_BatchCopy ($ self , $ entryPairs )
191+ {
192+ $ params = '' ;
193+ foreach ($ entryPairs as $ entryPair ) {
194+ if ($ params == '' ) {
195+ $ params = 'op= ' . Qiniu_RS_URICopy ($ entryPair ->src ->bucket , $ entryPair ->src ->key , $ entryPair ->dest ->bucket , $ entryPair ->dest ->key );
196+ continue ;
197+ }
198+ $ params .= '&op= ' . Qiniu_RS_URICopy ($ entryPair ->src ->bucket , $ entryPair ->src ->key , $ entryPair ->dest ->bucket , $ entryPair ->dest ->key );
199+ }
200+ return Qiniu_RS_Batch ($ self , $ params );
201+ }
202+
203+
104204// ----------------------------------------------------------
105205
206+ function Qiniu_RS_URIStat ($ bucket , $ key ) // => $entryURIEncoded
207+ {
208+ return "/stat/ " . Qiniu_Encode ("$ bucket: $ key " );
209+ }
210+
211+ function Qiniu_RS_URIDelete ($ bucket , $ key )
212+ {
213+ return "/delete/ " . Qiniu_Encode ("$ bucket: $ key " );
214+ }
215+
216+ function Qiniu_RS_URICopy ($ bucketSrc , $ keySrc , $ bucketDest , $ keyDest )
217+ {
218+ return "/copy/ " . Qiniu_Encode ("$ bucketSrc: $ keySrc " ) . "/ " . Qiniu_Encode ("$ bucketDest: $ keyDest " );
219+ }
220+
221+ function Qiniu_RS_URIMove ($ bucketSrc , $ keySrc , $ bucketDest , $ keyDest )
222+ {
223+ return "/move/ " . Qiniu_Encode ("$ bucketSrc: $ keySrc " ) . "/ " . Qiniu_Encode ("$ bucketDest: $ keyDest " );
224+ }
0 commit comments