thomaswelton/laravel-rackspace-opencloud

此包最新版本(0.4.1)没有可用的许可证信息。

0.4.1 2016-05-16 14:03 UTC

This package is auto-updated.

Last update: 2024-09-11 13:55:26 UTC


README

Latest Stable Version Total Downloads Bitdeli Badge

安装

更新你的 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)