kinow-io / assets-laravel-aws-manager
Laravel 的内容分发网络 (CDN) 包
Requires
- php: >=5.5.0
- aws/aws-sdk-php: ~3.0
- illuminate/config: ~5.0
- illuminate/support: ~5.0
- symfony/console: 2.*|3.*
- symfony/finder: 2.*|3.*
Requires (Dev)
- mockery/mockery: 0.9.3
- phpunit/phpunit: ~4.0
- dev-master
- 1.4.10
- v1.4.9
- v1.4.8
- v1.4.7
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.1
- v1.0.0
- v1.0.0-beta.3
- v1.0.0-beta.2
- v1.0.0-beta.1
- dev-feat/update-for-laravel55
- dev-feat/add-laravel-mix-compatibility
- dev-develop
This package is not auto-updated.
Last update: 2024-09-20 07:26:45 UTC
README
Laravel 的内容分发网络包
该包允许开发者通过单个 artisan 命令将他的资源(或任何公共文件)上传到 CDN,然后允许他在本地版本和在线版本之间切换文件。
Laravel 支持
- 对于 Laravel 5.1,使用最新版本(
master
)。 - 对于 Laravel 4.2,使用版本
v1.0.1
L 4.2 的最后支持版本
亮点
- Amazon Web Services - S3
- Artisan 命令用于上传内容到 CDN
- 简单的 Facade 用于访问 CDN 资源
安装
通过 Composer
在你的项目中要求 kinow-io/assets-laravel-aws-manager
composer require kinow-io/assets-laravel-aws-manager:*
由于这是一个 Laravel 包,我们需要注册服务提供者
将服务提供者添加到 config/app.php
'providers' => array( //... Vinelab\Cdn\CdnServiceProvider::class, ),
配置
在 .env
文件中设置凭据。
注意:你必须在项目根目录中有一个 .env
文件来保存你的敏感信息。
AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY=
发布包配置文件
php artisan vendor:publish
你可以在 config/cdn.php
中找到它
默认提供者
'default' => 'AwsS3',
CDN 提供者配置
'aws' => [ 's3' => [ 'version' => 'latest', 'region' => '', 'buckets' => [ 'my-backup-bucket' => '*', ] ] ],
多个存储桶
'buckets' => [ 'my-default-bucket' => '*', // 'js-bucket' => ['public/js'], // 'css-bucket' => ['public/css'], // ... ]
文件 & 目录
包含
指定要上传的目录、扩展名、文件和模式。
'include' => [ 'directories' => ['public/dist'], 'extensions' => ['.js', '.css', '.yxz'], 'patterns' => ['**/*.coffee'], ],
排除
指定要忽略的内容。
'exclude' => [ 'directories' => ['public/uploads'], 'files' => [''], 'extensions' => ['.TODO', '.txt'], 'patterns' => ['src/*', '.idea/*'], 'hidden' => true, // ignore hidden files ],
URL
设置 CDN URL
'url' => 'https://s3.amazonaws.com',
HTTP
设置 HTTP 参数
'http' => '['verify' => path-to-your-pem-certificate-file]',
绕过
要加载本地资源进行测试或在开发期间,将 bypass
选项设置为 true
'bypass' => true,
Cloudfront 支持
'cloudfront' => [ 'use' => false, 'cdn_url' => '' ],
其他配置
'acl' => 'public-read', 'metadata' => [ ], 'expires' => gmdate("D, d M Y H:i:s T", strtotime("+5 years")), 'cache-control' => 'max-age=2628000',
你可以始终参考 AWS S3 文档以获取更多详细信息:aws-sdk-php
使用方法
推送
将资源上传到 CDN
php artisan cdn:push
清空
从 CDN 删除资源
php artisan cdn:empty
加载资源
使用 Facade Cdn
调用 Cdn::asset()
函数。
注意:`asset` 与 Laravel 的 `asset` 作用相同,它从 `public/` 目录开始查找资源
{{Cdn::asset('assets/js/main.js')}} // example result: https://js-bucket.s3.amazonaws.com/public/assets/js/main.js {{Cdn::asset('assets/css/style.css')}} // example result: https://css-bucket.s3.amazonaws.com/public/assets/css/style.css
注意:`elixir` 与 Laravel 的 `elixir` 作用相同,它从构建文件夹加载 manifest.json 文件并选择 gulp 生成的正确文件版本
{{Cdn::elixir('assets/js/main.js')}} // example result: https://js-bucket.s3.amazonaws.com/public/build/assets/js/main-85cafe36ff.js {{Cdn::elixir('assets/css/style.css')}} // example result: https://css-bucket.s3.amazonaws.com/public/build/assets/css/style-2d558139f2.css
要从 `public/` 目录外部的任何 `app/` 目录中使用文件,请使用 Cdn::path()
函数
{{Cdn::path('private/something/file.txt')}} // example result: https://css-bucket.s3.amazonaws.com/private/something/file.txt
测试
要从项目文件夹中运行测试,请运行以下命令。
$ ./vendor/bin/phpunit
支持
贡献
请参阅 CONTRIBUTING 以获取详细信息。
安全性
如果你发现任何安全相关的问题,请通过电子邮件发送到 mahmoud@vinelab.com,而不是使用问题跟踪器。
鸣谢
许可证
MIT 许可证(MIT)。请参阅 许可证文件 以获取更多信息。