Commit f5a62acc authored by 刘小敏's avatar 刘小敏

obs临时凭证接口优化

parent c6761656
...@@ -34,51 +34,47 @@ class User extends Common ...@@ -34,51 +34,47 @@ class User extends Common
*/ */
public function getObsToken() public function getObsToken()
{ {
// 获取华为云 OBS 配置 // 获取华为云 OBS 配置(在 config.php 的 shopro 数组中)
$accessKey = config('obs.access_key', ''); $accessKey = config('shopro.obs_access_key');
$secretKey = config('obs.secret_key', ''); $secretKey = config('shopro.obs_secret_key');
$endpoint = config('obs.endpoint', ''); $endpoint = config('shopro.obs_endpoint');
$bucket = config('obs.bucket', ''); $bucket = config('shopro.obs_bucket');
// 检查配置是否完整 // 检查配置是否完整
if (empty($accessKey) || empty($secretKey) || empty($endpoint) || empty($bucket)) { if (empty($accessKey) || empty($secretKey) || empty($endpoint) || empty($bucket)) {
$this->error('OBS 配置未完成'); $this->error('OBS 配置未完成');
} }
try { // 1. 生成上传目录(按日期分目录)
// 1. 生成上传目录(按日期分目录) $dir = 'upload/' . date('Ymd') . '/';
$dir = 'upload/' . date('Ymd') . '/';
// 2. 生成 Policy(有效期 1 小时)
// 2. 生成 Policy(有效期 1 小时) $expireTime = time() + 3600; // 1小时后过期
$expireTime = time() + 3600; // 1小时后过期 $policy = [
$policy = [ 'expiration' => gmdate('Y-m-d\TH:i:s\Z', $expireTime),
'expiration' => gmdate('Y-m-d\TH:i:s\Z', $expireTime), 'conditions' => [
'conditions' => [ ['bucket' => $bucket],
['bucket' => $bucket], ['starts-with', '$key', $dir],
['starts-with', '$key', $dir], ['content-length-range', 0, 104857600] // 限制最大 100MB
['content-length-range', 0, 104857600] // 限制最大 100MB ]
] ];
];
$policyBase64 = base64_encode(json_encode($policy));
$policyBase64 = base64_encode(json_encode($policy));
// 3. 生成 Signature(使用 HMAC-SHA1 签名)
// 3. 生成 Signature(使用 HMAC-SHA1 签名) $signature = base64_encode(hash_hmac('sha1', $policyBase64, $secretKey, true));
$signature = base64_encode(hash_hmac('sha1', $policyBase64, $secretKey, true));
// 4. 构建返回数据
// 4. 构建返回数据 $result = [
$result = [ 'accessKeyId' => $accessKey,
'accessKeyId' => $accessKey, 'policy' => $policyBase64,
'policy' => $policyBase64, 'signature' => $signature,
'signature' => $signature, 'dir' => $dir,
'dir' => $dir, 'host' => "https://{$bucket}.{$endpoint}"
'host' => "https://{$bucket}.{$endpoint}" ];
];
$this->success('获取成功', $result);
$this->success('获取成功', $result);
} catch (\Exception $e) {
$this->error('获取 OBS 凭证失败: ' . $e->getMessage());
}
} }
/** /**
......
...@@ -311,7 +311,7 @@ return [ ...@@ -311,7 +311,7 @@ return [
//版本号 //版本号
'version' => '1.6.2.20260323', 'version' => '1.6.2.20260323',
//API接口地址 //API接口地址
'api_url' => 'https://api.fastadmin.net', 'api_url' => 'https://www.njing.net',
], ],
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | Shopro配置 // | Shopro配置
...@@ -328,11 +328,11 @@ return [ ...@@ -328,11 +328,11 @@ return [
'ai_mix' => Env::get('app.ai_mix', ''), 'ai_mix' => Env::get('app.ai_mix', ''),
'ai_hook' => Env::get('app.ai_hook', ''), 'ai_hook' => Env::get('app.ai_hook', ''),
// obs 配置
'obs_access_key' => 'HPUAWU3GPS8HEWX9JFLG',
'obs_secret_key' => 'Jj7Vt1WnU69pWG6QplBmHBkaw6WM4oLU1AZa9Z9n',
'obs_endpoint' => 'obs.cn-east-3.myhuaweicloud.com', // 根据区域修改
'obs_bucket' => 'beevera'
], ],
'obs' => [
'access_key' => 'HPUAWU3GPS8HEWX9JFLG',
'secret_key' => 'Jj7Vt1WnU69pWG6QplBmHBkaw6WM4oLU1AZa9Z9n',
'endpoint' => 'obs.cn-east-3.myhuaweicloud.com', // 根据区域修改
'bucket' => 'beevera'
]
]; ];
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment