ghostzero / bunny
将文件复制并存储到边缘!
Requires
- php: ^7.4|^8.0
- ext-json: *
Requires (Dev)
- guzzlehttp/guzzle: ^7.0
- laminas/laminas-text: ^2.8
- laravel-zero/framework: ^8.8
- mockery/mockery: ^1.4.3
- pestphp/pest: ^1.3
README
请仅将Bunny CLI用于开发目的。我们尚未发布稳定版本。
Bunny CLI是什么?
Bunny CLI是一个控制台工具,用于快速上传前端框架(如Angular、Vue.js、React或更近期的Blazor)到Bunny CDN的Edge Store。
借助Bunny CDN的存储边缘,您的Web应用可以受益于复制的存储区域、全球内容分发网络,该网络在全球5个不同区域托管文件,并通过全球内容分发网络(超过54+ PoP)加速一切。
如何使用Bunny CLI?
要安装Bunny CLI,您需要使用Composer。有关Composer的更多详细信息,请参阅Composer文档。
composer global require own3d/bunny-cli
如果您想更新Bunny CLI,只需执行以下命令
composer global update own3d/bunny-cli
安装Bunny CLI后,下一步通常是运行bunny init
命令以执行初始设置任务。您也可以稍后运行bunny init
以更改设置或创建新的配置。
运行Bunny Init
初始化Bunny CLI
- 运行
bunny init
bunny init
- 配置您的API凭据。
为了使Bunny CLI正常工作,您需要存储您的Bunny CDN API令牌。您可以在您的账户设置中找到API令牌。
- 如有提示,请选择当前的存储区域。
如果您只能访问一个存储区域,包括默认的拉取区域,则bunny init
会为您选择。
当bunny init
完成时,它会在您的.env文件中保存环境变量。
您可以使用bunny env:list
命令在任意时间查看这些环境变量。
部署您的第一个项目
使用bunny deploy
命令,您可以轻松地将您的dist
文件夹与边缘存储同步。
重要:边缘存储中所有不在您本地
dist
目录中的文件都将被删除。
➜ $ bunny deploy
- Hashing files...
✔ Finished hashing 16360 files
- CDN diffing files...
✔ CDN requesting 10875 files
- Synchronizing 10875 files
10875/10875 [============================] 100%
✔ Finished synchronizing 10875 files
- Waiting for deploy to go live...
✔ Deployment is live! (322.96s)
Website URL: https://bunny-cli.b-cdn.net/
如何将Bunny CLI集成到我的GitHub Actions工作流程中?
我们提供免费GitHub Action for Bunny CLI。您可以使用此操作在部署过程中轻松将可分发文件上传到边缘存储。只需将存储密码(BUNNY_STORAGE_PASSWORD
)和您的API密钥(BUNNY_API_ACCESS_KEY
)放入GitHub仓库的秘密中,并根据以下方式调整您的工作流程。
- name: Deploy to Edge Storage
uses: own3d/bunny-action@main
env:
BUNNY_API_ACCESS_KEY: ${{ secrets.BUNNY_API_ACCESS_KEY }}
BUNNY_STORAGE_USERNAME: bunny-cli
BUNNY_STORAGE_PASSWORD: ${{ secrets.BUNNY_STORAGE_PASSWORD }}
BUNNY_STORAGE_PATH: some_target_edge_dir (optional)
BUNNY_PULL_ZONE_ID: 466588
with:
args: deploy --dir=dist
环境变量
您可以在任何时间自定义环境文件。以下命令可用于此目的
保护.well-known/bunny-cli.lock
文件
Bunny CLI生成一个默认位于.well-known/bunny-cli.lock
的锁定文件。此文件将您的项目文件锁定到已知状态。为了避免公开访问,建议在您的拉取区域中创建新的边缘规则。您可以使用以下示例作为模板
操作:阻止请求
条件匹配:匹配任何
条件:如果请求URL
匹配任何
*/.well-known/bunny-cli.lock
现在该文件应该不再可访问。您的边缘规则可能需要几分钟才能生效。
常见问题解答
Q:这是零停机部署吗?
回答:视情况而定。只有在文件同步完成时,才会清除拉取区域缓存。因此,如果由于缓存过期或缺失而没有CDN缓存,则可能会发生未预料的事件。
我们希望与Bunny CDN一起解决这个问题。
问题:这是Bunny CDN的官方工具吗?
回答:不是。Bunny CLI是一个由社区驱动的工具,与Bunny CDN无关联。
许可证
Bunny CLI是一个在Apache 2.0许可证下授权的开源软件。