tutorial.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436
  1. <?php
  2. /**
  3. * 加载sdk包以及错误代码包
  4. */
  5. require_once '../sdk.class.php';
  6. $oss_sdk_service = new ALIOSS();
  7. //设置是否打开curl调试模式
  8. $oss_sdk_service->set_debug_mode(FALSE);
  9. //设置开启三级域名,三级域名需要注意,域名不支持一些特殊符号,所以在创建bucket的时候若想使用三级域名,最好不要使用特殊字符
  10. //$oss_sdk_service->set_enable_domain_style(TRUE);
  11. /**
  12. * 测试程序
  13. * 目前SDK存在一个bug,在文中如果含有-&的时候,会出现找不到相关资源
  14. */
  15. try{
  16. /**
  17. * Service相关操作
  18. */
  19. //get_service($oss_sdk_service);
  20. /**
  21. * Bucket相关操作
  22. */
  23. //create_bucket($oss_sdk_service);
  24. //delete_bucket($oss_sdk_service);
  25. //set_bucket_acl($oss_sdk_service);
  26. //get_bucket_acl($oss_sdk_service);
  27. //set_bucket_logging($oss_sdk_service);
  28. //get_bucket_logging($oss_sdk_service);
  29. //delete_bucket_logging($oss_sdk_service);
  30. //set_bucket_website($oss_sdk_service);
  31. //get_bucket_website($oss_sdk_service);
  32. //delete_bucket_website($oss_sdk_service);
  33. /**
  34. * 跨域资源共享(CORS)
  35. */
  36. //set_bucket_cors($oss_sdk_service);
  37. //get_bucket_cors($oss_sdk_service);
  38. //delete_bucket_cors($oss_sdk_service);
  39. //options_object($oss_sdk_service);
  40. /**
  41. * Object相关操作
  42. */
  43. // list_object($oss_sdk_service);
  44. //create_directory($oss_sdk_service);
  45. //upload_by_content($oss_sdk_service);
  46. //upload_by_file($oss_sdk_service);
  47. //copy_object($oss_sdk_service);
  48. //get_object_meta($oss_sdk_service);
  49. //delete_object($oss_sdk_service);
  50. //delete_objects($oss_sdk_service);
  51. //get_object($oss_sdk_service);
  52. //is_object_exist($oss_sdk_service);
  53. //upload_by_multi_part($oss_sdk_service);
  54. //upload_by_dir($oss_sdk_service);
  55. //batch_upload_file($oss_sdk_service);
  56. /**
  57. * 外链url相关
  58. */
  59. //get_sign_url($oss_sdk_service);
  60. }catch (Exception $ex){
  61. die($ex->getMessage());
  62. }
  63. /**
  64. * 函数定义
  65. */
  66. /*%**************************************************************************************************************%*/
  67. // Service 相关
  68. //获取bucket列表
  69. function get_service($obj){
  70. $response = $obj->list_bucket();
  71. _format($response);
  72. }
  73. /*%**************************************************************************************************************%*/
  74. // Bucket 相关
  75. //创建bucket
  76. function create_bucket($obj){
  77. $bucket = 'invalidxml3';
  78. //$acl = ALIOSS::OSS_ACL_TYPE_PRIVATE;
  79. $acl = ALIOSS::OSS_ACL_TYPE_PUBLIC_READ;
  80. //$acl = ALIOSS::OSS_ACL_TYPE_PUBLIC_READ_WRITE;
  81. $response = $obj->create_bucket($bucket,$acl);
  82. _format($response);
  83. }
  84. //删除bucket
  85. function delete_bucket($obj){
  86. $bucket = 'phpsdk1349849369';
  87. $response = $obj->delete_bucket($bucket);
  88. _format($response);
  89. }
  90. //设置bucket ACL
  91. function set_bucket_acl($obj){
  92. $bucket = 'phpsdk1349849394';
  93. //$acl = ALIOSS::OSS_ACL_TYPE_PRIVATE;
  94. //$acl = ALIOSS::OSS_ACL_TYPE_PUBLIC_READ;
  95. $acl = ALIOSS::OSS_ACL_TYPE_PUBLIC_READ_WRITE;
  96. $response = $obj->set_bucket_acl($bucket,$acl);
  97. _format($response);
  98. }
  99. //获取bucket ACL
  100. function get_bucket_acl($obj){
  101. $bucket = 'phpsdk1349849394';
  102. $options = array(
  103. ALIOSS::OSS_CONTENT_TYPE => 'text/xml',
  104. );
  105. $response = $obj->get_bucket_acl($bucket,$options);
  106. _format($response);
  107. }
  108. //设置bucket logging
  109. function set_bucket_logging($obj){
  110. $bucket = 'phpsdk1349849394';
  111. $target_bucket='backet2';
  112. $target_prefix='test';
  113. $response = $obj->set_bucket_logging($bucket,$target_bucket,$target_prefix);
  114. _format($response);
  115. }
  116. //获取bucket logging
  117. function get_bucket_logging($obj){
  118. $bucket = 'phpsdk1349849394';
  119. $response = $obj->get_bucket_logging($bucket);
  120. _format($response);
  121. }
  122. //删除bucket logging
  123. function delete_bucket_logging($obj){
  124. $bucket = 'phpsdk1349849394';
  125. $response = $obj->delete_bucket_logging($bucket);
  126. _format($response);
  127. }
  128. //设置bucket website
  129. function set_bucket_website($obj){
  130. $bucket = 'phpsdk1349849394';
  131. $index_document='index.html';
  132. $error_document='error.html';
  133. $response = $obj->set_bucket_website($bucket,$index_document,$error_document);
  134. _format($response);
  135. }
  136. //获取bucket website
  137. function get_bucket_website($obj){
  138. $bucket = 'phpsdk1349849394';
  139. $response = $obj->get_bucket_website($bucket);
  140. _format($response);
  141. }
  142. //删除bucket website
  143. function delete_bucket_website($obj){
  144. $bucket = 'phpsdk1349849394';
  145. $response = $obj->delete_bucket_website($bucket);
  146. _format($response);
  147. }
  148. /*%**************************************************************************************************************%*/
  149. //跨域资源共享(CORS)
  150. //设置bucket cors
  151. function set_bucket_cors($obj){
  152. $bucket = 'phpsdk1349849394';
  153. $cors_rule[ALIOSS::OSS_CORS_ALLOWED_HEADER]=array("x-oss-test");
  154. $cors_rule[ALIOSS::OSS_CORS_ALLOWED_METHOD]=array("GET");
  155. $cors_rule[ALIOSS::OSS_CORS_ALLOWED_ORIGIN]=array("http://www.b.com");
  156. $cors_rule[ALIOSS::OSS_CORS_EXPOSE_HEADER]=array("x-oss-test1");
  157. $cors_rule[ALIOSS::OSS_CORS_MAX_AGE_SECONDS] = 10;
  158. $cors_rules=array($cors_rule);
  159. $response = $obj->set_bucket_cors($bucket, $cors_rules);
  160. _format($response);
  161. }
  162. //获取bucket cors
  163. function get_bucket_cors($obj){
  164. $bucket = 'phpsdk1349849394';
  165. $response = $obj->get_bucket_cors($bucket);
  166. _format($response);
  167. }
  168. //删除bucket cors
  169. function delete_bucket_cors($obj){
  170. $bucket = 'phpsdk1349849394';
  171. $response = $obj->delete_bucket_cors($bucket);
  172. _format($response);
  173. }
  174. //options object
  175. function options_object($obj){
  176. $bucket = 'phpsdk1349849394';
  177. $object='1.jpg';
  178. $origin='http://www.b.com';
  179. $request_method='GET';
  180. $request_headers='x-oss-test';
  181. $response = $obj->options_object($bucket, $object, $origin, $request_method, $request_headers);
  182. _format($response);
  183. }
  184. /*%**************************************************************************************************************%*/
  185. // Object 相关
  186. //获取object列表
  187. function list_object($obj){
  188. $bucket = 'duanbiaowu';
  189. $options = array(
  190. 'delimiter' => '/',
  191. 'prefix' => '',
  192. 'max-keys' => 10,
  193. //'marker' => 'myobject-1330850469.pdf',
  194. );
  195. $response = $obj->list_object($bucket,$options);
  196. _format($response);
  197. }
  198. //创建目录
  199. function create_directory($obj){
  200. $bucket = 'efrwerwertyrty';
  201. //$dir = '"><img src=\"#\" onerror=alert(\/';
  202. $dir = 'myfoll////';
  203. $response = $obj->create_object_dir($bucket,$dir);
  204. _format($response);
  205. }
  206. //通过内容上传文件
  207. function upload_by_content($obj){
  208. $bucket = 'invalidxml3';
  209. $folder = 'bbb/';
  210. for($index = 100;$index < 201;$index++){
  211. $object = $folder.'&#26;&#26;_'.$index.'.txt';
  212. $content = 'uploadfile';
  213. /**
  214. for($i = 1;$i<100;$i++){
  215. $content .= $i;
  216. }
  217. */
  218. $upload_file_options = array(
  219. 'content' => $content,
  220. 'length' => strlen($content),
  221. ALIOSS::OSS_HEADERS => array(
  222. 'Expires' => '2012-10-01 08:00:00',
  223. ),
  224. );
  225. $response = $obj->upload_file_by_content($bucket,$object,$upload_file_options);
  226. echo 'upload file {'.$object.'}'.($response->isOk()?'ok':'fail')."\n";
  227. }
  228. //_format($response);
  229. }
  230. //通过路径上传文件
  231. function upload_by_file($obj){
  232. $bucket = 'phpsdk1349849394';
  233. $object = 'netbeans-7.1.2-ml-cpp-linux.sh';
  234. $file_path = "D:\\TDDOWNLOAD\\netbeans-7.1.2-ml-cpp-linux.sh";
  235. $response = $obj->upload_file_by_file($bucket,$object,$file_path);
  236. _format($response);
  237. }
  238. //拷贝object
  239. function copy_object($obj){
  240. //copy object
  241. $from_bucket = 'invalidxml';
  242. $from_object = '&#26;&#26;_100.txt';
  243. $to_bucket = 'invalidxml';
  244. $to_object = '&#26;&#26;_100.txt';
  245. $options = array(
  246. 'content-type' => 'application/json',
  247. );
  248. $response = $obj->copy_object($from_bucket,$from_object,$to_bucket,$to_object,$options);
  249. _format($response);
  250. }
  251. //获取object meta
  252. function get_object_meta($obj){
  253. $bucket = 'duanbiaowu';
  254. $object = 'logo_hd.png';
  255. $response = $obj->get_object_meta($bucket,$object);
  256. _format($response);
  257. }
  258. //删除object
  259. function delete_object($obj){
  260. $bucket = 'duanbiaowu';
  261. $object = 'mc_require.jpg';
  262. $response = $obj->delete_object($bucket,$object);
  263. _format($response);
  264. }
  265. //删除objects
  266. function delete_objects($obj){
  267. $bucket = 'phpsdk1349849394';
  268. $objects = array('myfoloder-1349850940/','myfoloder-1349850941/',);
  269. $options = array(
  270. 'quiet' => false,
  271. //ALIOSS::OSS_CONTENT_TYPE => 'text/xml',
  272. );
  273. $response = $obj->delete_objects($bucket,$objects,$options);
  274. _format($response);
  275. }
  276. //获取object
  277. function get_object($obj){
  278. $bucket = 'phpsdk1349849394';
  279. $object = 'netbeans-7.1.2-ml-cpp-linux.sh';
  280. $options = array(
  281. ALIOSS::OSS_FILE_DOWNLOAD => "d:\\cccccccccc.sh",
  282. //ALIOSS::OSS_CONTENT_TYPE => 'txt/html',
  283. );
  284. $response = $obj->get_object($bucket,$object,$options);
  285. _format($response);
  286. }
  287. //检测object是否存在
  288. function is_object_exist($obj){
  289. $bucket = 'phpsdk1349849394';
  290. $object = 'netbeans-7.1.2-ml-cpp-linux.sh';
  291. $response = $obj->is_object_exist($bucket,$object);
  292. _format($response);
  293. }
  294. //通过multipart上传文件
  295. function upload_by_multi_part($obj){
  296. $bucket = 'phpsdk1349849394';
  297. $object = 'Mining.the.Social.Web-'.time().'.pdf'; //英文
  298. $filepath = "D:\\Book\\Mining.the.Social.Web.pdf"; //英文
  299. $options = array(
  300. ALIOSS::OSS_FILE_UPLOAD => $filepath,
  301. 'partSize' => 5242880,
  302. );
  303. $response = $obj->create_mpu_object($bucket, $object,$options);
  304. _format($response);
  305. }
  306. //通过multipart上传整个目录
  307. function upload_by_dir($obj){
  308. $bucket = 'phpsdk1349849394';
  309. $dir = "D:\\alidata\\www\\logs\\aliyun.com\\oss\\";
  310. $recursive = false;
  311. $response = $obj->create_mtu_object_by_dir($bucket,$dir,$recursive);
  312. var_dump($response);
  313. }
  314. //通过multi-part上传整个目录(新版)
  315. function batch_upload_file($obj){
  316. $options = array(
  317. 'bucket' => 'phpsdk1349849394',
  318. 'object' => 'picture',
  319. 'directory' => 'D:\alidata\www\logs\aliyun.com\oss',
  320. );
  321. $response = $obj->batch_upload_file($options);
  322. }
  323. /*%**************************************************************************************************************%*/
  324. // 签名url 相关
  325. //生成签名url,主要用户私有权限下的访问控制
  326. function get_sign_url($obj){
  327. $bucket = 'phpsdk1349849394';
  328. $object = 'netbeans-7.1.2-ml-cpp-linux.sh';
  329. $timeout = 3600;
  330. $response = $obj->get_sign_url($bucket,$object,$timeout);
  331. var_dump($response);
  332. }
  333. /*%**************************************************************************************************************%*/
  334. // 结果 相关
  335. //格式化返回结果
  336. function _format($response) {
  337. echo '<pre>';
  338. echo '|-----------------------Start---------------------------------------------------------------------------------------------------'."\n";
  339. echo '|-Status:' . $response->status . "\n";
  340. echo '|-Body:' ."\n";
  341. echo $response->body . "\n";
  342. echo "|-Header:\n";
  343. print_r ( $response->header );
  344. echo '-----------------------End-----------------------------------------------------------------------------------------------------'."\n\n";
  345. }
  346. get_service($oss_sdk_service);
  347. get_object_meta($oss_sdk_service);
  348. delete_object($oss_sdk_service);