Package Data | |
---|---|
Maintainer Username: | BraunsonYager |
Maintainer Contact: | braunson@geekybeaver.ca (Braunson Yager) |
Package Create Date: | 2017-03-01 |
Package Last Update: | 2017-10-23 |
Language: | PHP |
License: | Unknown |
Last Refreshed: | 2024-12-19 03:05:54 |
Package Statistics | |
---|---|
Total Downloads: | 38 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 1 |
Total Watchers: | 3 |
Total Forks: | 1 |
Total Open Issues: | 0 |
README for Laravel 4.x is here
Run command in your terminal to include this package as a dependency:
composer require braunson/laravel-rackspace-opencloud
Register the OpenCloud service provider and alias the OpenCloud, Str (removed in Laravel 5.0+) facades by adding it to the providers and aliases arrays in the config/app.php
file.
For Laravel 5.5 and later don't need (auto discovery).
For Laravel 5.2 - 5.4:
'providers' => [
Braunson\LaravelRackspaceCdn\LaravelRackspaceCdnServiceProvider::class
];
'aliases' => [
'OpenCloud' => Braunson\LaravelRackspaceCdn\Facades\OpenCloud::class,
'Str' => Illuminate\Support\Str::class,
]
For Laravel 5.1 and earlier:
'providers' => [
'Braunson\LaravelRackspaceCdn\LaravelRackspaceCdnServiceProvider'
]
'aliases' => [
'OpenCloud' => 'Braunson\LaravelRackspaceCdn\Facades\OpenCloud',
'Str' => 'Illuminate\Support\Str',
]
Copy the config files into your project by running:
php artisan vendor:publish --provider="Braunson\LaravelRackspaceCdn\LaravelRackspaceCdnServiceProvider"
Edit the config file to include your username, api key, region and url (internal or public).
Upload files via the command line.
Synchronize a whole directory. Copies all files to /public/assets
:
php artisan cdn:sync public/assets
Copies all files to /assets
trimming 'public' from the path:
php artisan cdn:sync public/assets --trim=public
You can configure your package.json
to do this as NPM task:
"scripts": {
"cdn:sync": "php artisan cdn:sync public/assets --trim=public"
},
The sync command will save a file adjacent to the synchronized directory. It contains the http and https urls for your container. Along with a md5 hash of the directory. In this way when a file changes inside a directory and is reuploaded you get a new cache busted URL.
If you are using the URL helper then it will return a CDN url for a file, if it finds a *.cdn.json
file adjacent to one of it's parent directories.
URL::asset('assets/image.jpg');
You should be able to run php artisan cdn:sync public/assets --trim=public
before or during a deployment and once complete all files being called by URL::asset()
will return a CDN resource.
OpenCloud::upload($container, $file, $name = null)
$container
- (string) Name of the container to upload into;$file
- (string / UploadedFile) Path to file, or instance of Symfony\Component\HttpFoundation\File\UploadedFile
as returned by Request::file()
;$name
- (string) Optional file name to be used when saving the file to the CDN.Example:
Route::post('/upload', function()
{
// '\Input' alias was removed from the default aliases in Laravel 5.2+
if(Request::hasFile('image')){
$file = OpenCloud::upload('my-container', Request::file('image'));
}
$cdnUrl = $file->PublicURL();
// Do something with $cdnUrlth
return Redirect::to('/upload');
});
OpenCloud::delete($container, $file)