thomaswelton / laravel-rackspace-opencloud
此包最新版本(0.4.1)没有可用的许可证信息。
0.4.1
2016-05-16 14:03 UTC
Requires
- php: >=5.3.0
- alchemy/zippy: 0.1.0
- illuminate/support: 4.x
- rackspace/php-opencloud: 1.5.*
README
安装
更新你的 composer.json
文件,将此包作为依赖项包括在内
"thomaswelton/laravel-rackspace-opencloud": "dev-master"
通过将服务提供程序添加到你的 app/config/app.php
文件中的 providers 数组来注册 OpenCloud 服务提供程序。
'providers' => array( Thomaswelton\LaravelRackspaceOpencloud\LaravelRackspaceOpencloudServiceProvider )
通过将外观添加到 app/config/app.php
文件中的 aliases 数组来别名 OpenCloud。
'aliases' => array( 'OpenCloud' => 'Thomaswelton\LaravelRackspaceOpencloud\Facades\OpenCloud' )
配置
通过运行以下命令将配置文件复制到你的项目:
php artisan config:publish thomaswelton/laravel-rackspace-opencloud
编辑配置文件,包括你的用户名、API密钥和区域。
使用方法
Artisan 命令
通过命令行上传文件。
同步整个目录。将所有文件复制到 /public/assets
php artisan cdn:sync public/assets
将所有文件复制到 /assets,从路径中删除 'public'。
php artisan cdn:sync public/assets --trim=public
同步命令将保存一个与同步目录相邻的文件。它包含容器的 http 和 https URL 以及目录的 md5 哈希。这样,当目录内的文件更改并重新上传时,你会得到一个新的缓存破坏 URL。
如果你使用 URL 助手,那么它将返回一个 CDN URL,如果它在其父目录之一旁边找到一个 *.cdn.json 文件。
URL::asset('assets/image.jpg');
你应该可以在部署之前或期间运行 php artisan cdn:sync public/assets --trim=public
,完成后,所有通过 URL::asset()
调用的文件都将返回 CDN 资源。
上传到 CDN
使用此方法将使容器公开,即使之前设置为私有。这是一个已知问题,尚未解决。
OpenCloud::upload($container, $file, $name = null)
- $container - (string) 要上传到的容器的名称
- $file - (string / UploadedFile) 文件路径,或 'Symfony\Component\HttpFoundation\File\UploadedFile' 的实例,如 Input::file() 返回的
- $name - (string) 可选的文件名,用于将文件保存到 CDN
示例
Route::post('/upload', function() { if(Input::hasFile('image')){ $file = OpenCloud::upload('my-container', Input::file('image')); } $cdnUrl = $file->PublicURL(); // Do something with $cdnUrl return Redirect::to('/upload'); });
从 CDN 删除
OpenCloud::delete($container, $file)