Cloud Files is Rackspace's cloud object storage. It's simliar to Amazon S3.
This task is based on grunt-s3 by Aaron Forsander, and uses the pkgcloud client by Nodejitsu.
This is all designed to work with Rackspace Cloud Files, and hasn't been tested on OpenStack Storage.
npm install grunt-cloudfiles --save-dev
(or manually addgrunt-cloudfiles
to yourpackage.json
).- Add
grunt.loadNpmTasks('grunt-cloudfiles');
toGruntfile.js
Add the task to your Gruntfile's grunt.initConfig:
cloudfiles: {
prod: {
'user': 'your Rackspace username',
'key': 'your Rackspace API key',
'region': 'DFW',
'upload': [{
'container': 'name of your Cloud Files container',
'src': 'source/static/**/*',
'dest': 'some/folder/',
'stripcomponents': 1,
'purge': {
'emails': ['your@email.com'],
'files': ['index.html']
}
}]
}
}
Stripcomponents (as in tar) will strip X leading path parts from the source dir.
In the example above, the file source/static/js/app/main.js
will be uploaded to some/folder/static/js/app/main.js
, with the source/
part being removed.
Since this is a multi task, you can add multiple targets as needed.
In this example we only have prod
, but you could have staging
, etc.
Remember that your Rackspace API key is private. If you are commiting your Gruntfile to a public repository, you probably want to store it in a separate local_config.json file.
For Rackspace UK users an additional configuration parameter authUrl
is required to use the correct CDN url for UK accounts.
cloudfiles: {
prod: {
...
'region': 'LON',
'authUrl': 'https://lon.identity.api.rackspacecloud.com',
...
}
}
- added an option to purge files after the upload
- added support for regions
- added syncing based on MD5 Hash
- added ability to create and/or set the CDN enabled container if neither exists
- cleaned up code and moved from deferreds
- Added support for Rackspace UK cloudfile accounts
- Allow for destination folder in container
- Migrated to pkgcloud cloud
- Support grunt >= 0.4.0
- Auth and adding files
- Provide full management of files
- Implement meta tags