config['access_key'], $this->config['secret_key'], $this->config['bucket'], $this->config['base_url'], $this->config['path_prefix'] ); } /** * 保存文件 * @param string $path 路径 * @param \think\File $file 文件 * @param null|string|\Closure $rule 文件名规则 * @param array $options 参数 * @return bool|string */ public function putFile(string $path, \think\File $file, $rule = null, array $options = []) { if (!empty($this->config['filename_generator']) && $this->config['filename_generator'] instanceof Closure) { $rule = $this->config['filename_generator']($file, $rule); } return $this->putFileAs($path, $file, $file->hashName($rule), $options); } public function url(string $path): string { if (str_starts_with($path, 'http://') || str_starts_with($path, 'https://')) { return $path; } if (!str_starts_with($path, $this->config['path_prefix'])) { $path = $this->config['path_prefix'] . '/' . $path; } return $this->concatPathToUrl($this->config['base_url'], $path); } public function path(string $path): string { if (!str_starts_with($path, $this->config['path_prefix'])) { $path = $this->config['path_prefix'] . '/' . $path; } return $path; } }