PHPackages                             gdshenrun/caiss-file - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. gdshenrun/caiss-file

ActiveLibrary[File &amp; Storage](/categories/file-storage)

gdshenrun/caiss-file
====================

文件上传管理

1.0.4(5y ago)020MITPHPPHP &gt;=7.2

Since Dec 23Pushed 5y ago1 watchersCompare

[ Source](https://github.com/gdshenrun/caiss-file)[ Packagist](https://packagist.org/packages/gdshenrun/caiss-file)[ Docs](https://github.com/gdshenrun/caiss-file.git)[ RSS](/packages/gdshenrun-caiss-file/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (1)Versions (5)Used By (0)

caiss-file
==========

[](#caiss-file)

caiss-file

UploadRepository的安装 ：

```
composer require gdshenrun/caiss-file

```

思路 :

(1). 存储: 腾讯云的COS, 创建两个bucket, 一个权限是 私有读写, 另一个权限是 公有读, 私有写; 各自独立的加速域名;

(2). 数据库: 只保存URL的路径 userHead/puvYvI7bNVPOVlIbndFc.jpg

(3). 渲染时: 拼接 加速域名 https://{bucket名称}.file.myqcloud.com/

(4). 最终完整链接 https://{bucket名称}.file.myqcloud.com/ + {文件对象Key} + "私有bucket的鉴权参数"

(5). 富文本: 加速域名 使用 占位符 *CDN\_DOMAIN* 存储 和 渲染替换;

(6). 私有bucket 设置 "临时URL" 的有效期为 300秒, 超时则返回 http\_status 403;

代码示例:

```
    public function delete(Request $request, UploadRepository $uploadRepository){
        $privateBucket = config('myqcloud.privateBucket');
        $publicBucket = config('myqcloud.publicBucket');
        $dirname = config('myqcloud.resourceDir') . '/2020/';
        try{
            /**
             * @var \Illuminate\Http\UploadedFile $file
             */
            $file = $request->file('img');

            $res = [
                'code' => 200,
                'msg' => 'ok' ,
                'publicFile' => $uploadRepository->uploadFile($publicBucket, $dirname, 'jpg', $file->getPathname()),
                'privateFile' => $uploadRepository->uploadBase64Img($privateBucket, $dirname, $request->post('ba')),
            ];
            $res['publicUrl'] = $uploadRepository->getUrl($publicBucket, $res['publicFile']);
            $res['privateUrl'] = $uploadRepository->getTempUrl($privateBucket, $res['privateFile']);
        } catch (\Exception $e) {
            $res = [
                'code' => 400,
                'msg' => $e->getMessage(),
                'data' => null,
            ];
        }
        return response()->json($res, 200);
    }

```

返回结果

```
{
    "code": 200,
    "msg": "ok",
    "publicFile": "resource/2020/FjKNgiJhxEX30RGaT4HQePEhZ_bD.jpg",
    "privateFile": "resource/2020/Fg4mLEinOrlrPiVXeDVBdpRaRsXz.png",
    "publicUrl": "https://caiss-1301376600.file.myqcloud.com/resource/2020/FjKNgiJhxEX30RGaT4HQePEhZ_bD.jpg",
    "privateUrl": "https://caiss-private-1301376600.file.myqcloud.com/resource/2020/Fg4mLEinOrlrPiVXeDVBdpRaRsXz.png?sign=c85ea828744b128d7a50e40830a432b4&t=1609315291"
}

```

API:

(1). 递归遍历文件夹,返回树形结构

```
$dir = config("myqcloud.userHeadDir");

$uploadRepository->cmdList($bucketName, $dir);

```

(2). 列出文件夹的 文件列表和子文件夹列表(等价于dir,ll,ls命令)

```
$uploadRepository->cmdList($bucketName, $dir);

```

(3) 删除文件夹

```
$uploadRepository->cmdDeleteDir($bucketName, $dir);

```

(4) 删除文件

```
$uploadRepository->cmdDeleteObjects($bucketName, $dir);

```

(5) 复制文件

```
$uploadRepository->cmdCopyFile($srcBucketName, $srcKey, $destBucketName, $destKey);

```

(6) 移动文件 / 文件重命名

```
$uploadRepository->cmdRenameFile($srcBucketName, $srcKey, $destBucketName, $destKey);

```

(7) 创建文件夹

```
$uploadRepository->cmdCreateDir($bucketName, $dirname);

```

(8) 上传base64图片

```
$uploadRepository->uploadBase64Img(string $bucketName, string $directory, string $base64Img)

```

(9) 上传单个文件

```
$uploadRepository->uploadFile(string $bucketName, string $directory, string $extension, string $localFilePath)

```

(10) 私有文件 生成临时链接

```
$uploadRepository->getTempUrl(string $bucketName, string $objectKey)

```

(11) 公共文件 生成访问链接

```
$uploadRepository->getUrl(string $bucketName, string $objectKey)

```

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~2 days

Total

4

Last Release

2011d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/506679?v=4)[Chao Sun](/maintainers/sunchao)[@sunchao](https://github.com/sunchao)

---

Top Contributors

[![appledady](https://avatars.githubusercontent.com/u/13883775?v=4)](https://github.com/appledady "appledady (2 commits)")

### Embed Badge

![Health badge](/badges/gdshenrun-caiss-file/health.svg)

```
[![Health](https://phpackages.com/badges/gdshenrun-caiss-file/health.svg)](https://phpackages.com/packages/gdshenrun-caiss-file)
```

###  Alternatives

[freyo/flysystem-qcloud-cos-v5

Flysystem Adapter for Tencent Qcloud COS SDK V5

157204.2k6](/packages/freyo-flysystem-qcloud-cos-v5)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
