1
This commit is contained in:
@@ -65,47 +65,18 @@ class OssService
|
||||
public function generatePrivateUrl($objectKey, $expireTime = 3600)
|
||||
{
|
||||
try {
|
||||
// 验证参数
|
||||
if (empty($objectKey)) {
|
||||
throw new \InvalidArgumentException('ObjectKey cannot be empty');
|
||||
}
|
||||
if ($expireTime <= 0) {
|
||||
throw new \InvalidArgumentException('ExpireTime must be greater than 0');
|
||||
}
|
||||
|
||||
// 记录更详细的调试信息
|
||||
error_log("OSS URL Generation Debug:");
|
||||
error_log("Bucket: " . $this->bucket);
|
||||
error_log("ObjectKey: " . $objectKey);
|
||||
error_log("ExpireTime: " . $expireTime);
|
||||
error_log("Current Time: " . time());
|
||||
error_log("Expiration Time: " . (time() + $expireTime));
|
||||
error_log("AccessKeyId: " . substr($this->accessKeyId, 0, 4) . "****");
|
||||
error_log("Endpoint: " . $this->endpoint);
|
||||
|
||||
// 检查对象是否存在
|
||||
if (!$this->ossClient->doesObjectExist($this->bucket, $objectKey)) {
|
||||
error_log("OSS Object does not exist: " . $objectKey);
|
||||
throw new \RuntimeException('Object does not exist in OSS');
|
||||
}
|
||||
|
||||
// 生成 OSS 私有 URL
|
||||
$url = $this->ossClient->signUrl($this->bucket, $objectKey, $expireTime);
|
||||
|
||||
// 记录生成的 URL
|
||||
error_log("Generated URL: " . $url);
|
||||
// 修复签名编码问题
|
||||
$url = str_replace('%253D', '%3D', $url);
|
||||
$url = str_replace('%252F', '%2F', $url);
|
||||
$url = str_replace('%252B', '%2B', $url);
|
||||
|
||||
return $url;
|
||||
} catch (OssException $e) {
|
||||
error_log("OSS Error: " . $e->getMessage());
|
||||
error_log("Error Code: " . $e->getCode());
|
||||
error_log("Error Trace: " . $e->getTraceAsString());
|
||||
error_log("Request ID: " . $e->getRequestId());
|
||||
throw new \RuntimeException('OSS Error: ' . $e->getMessage());
|
||||
} catch (\Exception $e) {
|
||||
error_log("General Error in generatePrivateUrl: " . $e->getMessage());
|
||||
error_log("Error Trace: " . $e->getTraceAsString());
|
||||
throw new \RuntimeException('Error generating private URL: ' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user