oss.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace common\components;
  3. use OSS\Core\OssException;
  4. use OSS\OssClient;
  5. use Yii;
  6. class oss
  7. {
  8. // 文件夹常量数组: 1. uploads_pic_text -- 图文专用文件夹 2.
  9. const ROOT_PATHS = ['uploads_pic_text'];
  10. //上传文件
  11. public static function uploadImage($object, $filePath)
  12. {
  13. $ossClient = self::getOssClient();
  14. $bucket = Yii::$app->params['ossBucket'];
  15. try {
  16. $ossClient->uploadFile($bucket, $object, $filePath);
  17. } catch (OssException $e) {
  18. util::fail($e->getMessage());
  19. }
  20. return true;
  21. }
  22. public static function uploadContent($object,$content)
  23. {
  24. $ossClient = self::getOssClient();
  25. $bucket = Yii::$app->params['ossBucket'];
  26. try {
  27. $ossClient->putObject($bucket, $object, $content);
  28. } catch (OssException $e) {
  29. util::fail($e->getMessage());
  30. }
  31. return true;
  32. }
  33. public static function getOssClient()
  34. {
  35. $accessKeyId = Yii::$app->params['accessKeyId'];
  36. $accessKeySecret = Yii::$app->params['accessKeySecret'];
  37. $endpoint = Yii::$app->params['endpoint'];
  38. try {
  39. $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
  40. return $ossClient;
  41. } catch (OssException $e) {
  42. util::fail($e->getMessage());
  43. }
  44. }
  45. //判断文件是否存在 ssh 2021.4.18
  46. public static function getFile($object)
  47. {
  48. $ossClient = self::getOssClient();
  49. $bucket = Yii::$app->params['ossBucket'];
  50. try {
  51. return $ossClient->getObject($bucket, $object);
  52. } catch (OssException $e) {
  53. util::fail($e->getMessage());
  54. }
  55. }
  56. //判断文件是否存在 ssh 2021.4.18
  57. public static function fileExist($object)
  58. {
  59. $ossClient = self::getOssClient();
  60. $bucket = Yii::$app->params['ossBucket'];
  61. $ossClient->doesObjectExist($bucket, $object);
  62. try {
  63. return $ossClient->doesObjectExist($bucket, $object);
  64. } catch (OssException $e) {
  65. util::fail($e->getMessage());
  66. }
  67. }
  68. // oss水印 guoruidian 2021.5.16
  69. // oss::watermark('fdafas.jpg', [
  70. // 'image_xxx,size_20,g_sw,x_100,y_50',
  71. // 'text_xxx,color_0000b7,size_20,g_sw,x_100,y_50',
  72. // ])
  73. public static function watermark($object, array $process)
  74. {
  75. return Yii::$app->params['hdImgHost']. $object . "?x-oss-process=image/watermark,". implode('/watermark,', $process);
  76. }
  77. //上传语音
  78. public static function uploadTmpAudio($object, $filePath,$bucket = '')
  79. {
  80. $ossClient = self::getOssClient();
  81. $bucket = Yii::$app->params['ossBucket'];
  82. try {
  83. $ossClient->putObject($bucket, $object, $filePath);
  84. } catch (OssException $e) {
  85. util::fail($e->getMessage());
  86. }
  87. return true;
  88. }
  89. //删除文件
  90. public static function deleteObject($object)
  91. {
  92. $ossClient = self::getOssClient();
  93. $bucket = Yii::$app->params['ossBucket'];
  94. try {
  95. $ossClient->deleteObject($bucket, $object);
  96. } catch (OssException $e) {
  97. util::fail($e->getMessage());
  98. }
  99. return true;
  100. }
  101. //批量删除文件
  102. public static function deleteObjects($objects)
  103. {
  104. $ossClient = self::getOssClient();
  105. $bucket = Yii::$app->params['ossBucket'];
  106. try {
  107. $ossClient->deleteObjects($bucket, $objects);
  108. } catch (OssException $e) {
  109. util::fail($e->getMessage());
  110. }
  111. return true;
  112. }
  113. }