Browse Source

fix: 修改京东云获取域名接口 添加报错解析

Gosowong 2 năm trước cách đây
mục cha
commit
215aa9aced

+ 1 - 0
crmeb/crmeb/services/upload/Upload.php

@@ -20,6 +20,7 @@ use think\facade\Config;
  * @mixin \crmeb\services\upload\storage\OSS
  * @mixin \crmeb\services\upload\storage\COS
  * @mixin \crmeb\services\upload\storage\Qiniu
+ * @mixin \crmeb\services\upload\storage\Jdoss
  */
 class Upload extends BaseManager
 {

+ 33 - 1
crmeb/crmeb/services/upload/storage/Jdoss.php

@@ -272,9 +272,10 @@ class Jdoss extends BaseUpload
         ];
     }
 
-    public function deleteBucket(string $name)
+    public function deleteBucket(string $name, string $region = '')
     {
         try {
+            $this->storageRegion = $region;
             $this->app()->deleteBucket([
                 'bucketName' => $name, // REQUIRED
                 'forceDelete' => false
@@ -288,6 +289,7 @@ class Jdoss extends BaseUpload
     public function getDomian(string $name, string $region = null)
     {
         try {
+            $this->storageRegion = $region;
             $res = $this->app()->getBucketWebsite([
                 'Bucket' => $name
             ]);
@@ -300,6 +302,7 @@ class Jdoss extends BaseUpload
     public function bindDomian(string $name, string $domain, string $region = null)
     {
         try {
+            $this->storageRegion = $region;
             $this->app()->putBucketWebsite([
                 'Bucket' => $name,
                 'WebsiteConfiguration' => [
@@ -426,4 +429,33 @@ class Jdoss extends BaseUpload
         }
         return $waterPath;
     }
+
+    public function setError(?string $error = null)
+    {
+        $this->error = $error ?: '未知错误';
+        if (env('APP_DEBUG')) {
+            throw new UploadException($this->xmlToArr($this->error));
+        } else {
+            return false;
+        }
+    }
+
+    function xmlToArr($errorXml)
+    {
+
+        $pattern = '/<statusCode>(\d+)<\/statusCode><Code>(.*?)<\/Code><Message>(.*?)<\/Message><Resource>(.*?)<\/Resource><RequestId>(.*?)<\/RequestId>/';
+
+        preg_match($pattern, $errorXml, $matches);
+
+        $error = [
+            'statusCode' => $matches[1],
+            'Code' => $matches[2],
+            'Message' => $matches[3],
+            'Resource' => $matches[4],
+            'RequestId' => $matches[5]
+        ];
+
+        return $error;
+
+    }
 }