AliOss.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace app\common\services;
  3. use app\common\services\aliyunoss\OssClient;
  4. use app\common\services\aliyunoss\Core\OssException;
  5. class AliOss
  6. {
  7. protected $accessKeyId;
  8. protected $accessKeySecret;
  9. protected $endpoint;
  10. protected $bucket;
  11. protected $ossClient;
  12. public function __construct($accessKeyId, $accessKeySecret, $endpoint)
  13. {
  14. $this->accessKeyId = $accessKeyId;
  15. $this->accessKeySecret = $accessKeySecret;
  16. $this->endpoint = $endpoint;
  17. // $bucket = $bucket;
  18. }
  19. public function upload($object, $content, $bucket)
  20. {
  21. try{
  22. $ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
  23. $res = $ossClient->putObject($bucket, $object, $content);
  24. if ($res['info']) {
  25. }
  26. $data = $ossClient->getObjectMeta($bucket, $object);
  27. return $data;
  28. } catch(OssException $e) {
  29. printf($e->getMessage() . "\n");
  30. return $e->getMessage();
  31. }
  32. }
  33. public function checkBucket($bucket)
  34. {
  35. $ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
  36. $res = $ossClient->listBuckets($bucket);
  37. return $res;
  38. }
  39. public function getObject($object)
  40. {
  41. try {
  42. $ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
  43. $res = $ossClient->getobject($bucket, $object);
  44. return $res;
  45. } catch (OssException $e) {
  46. return $e->getMessage();
  47. }
  48. }
  49. public function PutBucketPublicRead()
  50. {
  51. try {
  52. $ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
  53. $res = $ossClient->putBucketAcl($bucket, 'public-read');
  54. return $res;
  55. } catch (OssException $e) {
  56. return $e->getMessage();
  57. }
  58. }
  59. public function PutBucketPrivate()
  60. {
  61. $ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
  62. $res = $ossClient->putBucketAcl($bucket, 'private');
  63. return $res;
  64. }
  65. public function upCallBack($object)
  66. {
  67. $ossClient = new OssClient($this->accessKeyId, $this->accessKeySecret, $this->endpoint);
  68. // 上传文件时设置回调。
  69. // callbackUrl为回调服务器地址,如http://oss-demo.aliyuncs.com:23450或http://127.0.0.1:9090。
  70. //callbackHost为回调请求消息头中Host的值,如oss-cn-hangzhou.aliyuncs.com。
  71. $url =
  72. '{
  73. "callbackUrl": {$callbackUrl}",
  74. "callbackHost":"{$callbackHost}",
  75. "callbackBody":
  76. "bucket={$bucket}&object={$object}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&my_var1=${x:var1}&my_var2=${x:var2}",
  77. "callbackBodyType":"application/x-www-form-urlencoded"
  78. }';
  79. // 设置发起回调请求的自定义参数,由Key和Value组成,Key必须以x:开始。
  80. $var =
  81. '{
  82. "x:var1":"value1",
  83. "x:var2":"值2"
  84. }';
  85. $options = array(OssClient::OSS_CALLBACK => $url,
  86. OssClient::OSS_CALLBACK_VAR => $var
  87. );
  88. $result = $ossClient->putObject($bucket, $object, file_get_contents(__FILE__), $options);
  89. print_r($result['body']);
  90. print_r($result['info']['http_code']);
  91. }
  92. }