bianjunhui 17 часов назад
Родитель
Сommit
3e438fbe8b
1 измененных файлов с 13 добавлено и 4 удалено
  1. 13 4
      packages/Longyi/ImageUpload/src/Services/ImageUploadService.php

+ 13 - 4
packages/Longyi/ImageUpload/src/Services/ImageUploadService.php

@@ -110,12 +110,21 @@ class ImageUploadService
             $fullPath = $path . '/' . $fileName;
 
             // 方式一:使用原生 AWS SDK 绕过 Laravel Storage
+            // 注意:生产环境执行 config:cache 后 env() 不再读取 .env,必须改用 config()
+            // 从 filesystems 配置读取 S3 连接信息,避免配置缓存导致 region 等参数为空。
+            $s3Config = config('filesystems.disks.s3', []);
+
+            $region = $s3Config['region'] ?? env('AWS_DEFAULT_REGION');
+            $key = $s3Config['key'] ?? env('AWS_ACCESS_KEY_ID');
+            $secret = $s3Config['secret'] ?? env('AWS_SECRET_ACCESS_KEY');
+            $bucket = $s3Config['bucket'] ?? env('AWS_BUCKET');
+
             $s3Client = new S3Client([
                 'version' => 'latest',
-                'region'  => env('AWS_DEFAULT_REGION'),
+                'region'  => $region,
                 'credentials' => [
-                    'key'    => env('AWS_ACCESS_KEY_ID'),
-                    'secret' => env('AWS_SECRET_ACCESS_KEY'),
+                    'key'    => $key,
+                    'secret' => $secret,
                 ],
                 'http'    => [
                     'verify' => false,  // 临时禁用 SSL 验证用于测试
@@ -123,7 +132,7 @@ class ImageUploadService
             ]);
 
             $result = $s3Client->putObject([
-                'Bucket' => env('AWS_BUCKET'),
+                'Bucket' => $bucket,
                 'Key'    => $fullPath,
                 'Body'   => (string) $image,
                 'ContentType' => 'image/webp',