Skip to content

Commit

Permalink
added support for amazon s3 and updated package cloud
Browse files Browse the repository at this point in the history
  • Loading branch information
yawetse committed Nov 23, 2014
1 parent 9194079 commit c29b93e
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 21 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ $ npm install periodicjs.ext.clouduploads

you can define your own pkgcloud provider configuration, after the extension has been installed, the extension configuration is located in `content/config/extensions/periodicjs.ext.clouduploads/provider.json`

Remember for Amazon S3, you have to set your bucket policy correctly.

##Development
*Make sure you have grunt installed*
```
Expand Down
10 changes: 9 additions & 1 deletion config/provider.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,14 @@
"provider": "rackspace",
"username": "your-user-name",
"apiKey": "your-api-key",
"containername": "periodic-containername",
"region": "IAD"
}
},
"development-amazon": {
"provider": "amazon",
"accessKeyId": "your-access-key-id",
"accessKey": "you-access-key",
"bucket":"created-bucked-on-s3",
"region":"us-west-2"
},
}
39 changes: 20 additions & 19 deletions controller/cloudupload.js
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ var upload = function (req, res, next) {
}
});
}
console.log('newfilepath',newfilepath,'cloudStorageContainer',cloudStorageContainer);
try{
var cloudupload = cloudstorageclient.upload({
container: cloudStorageContainer,
Expand All @@ -103,10 +102,9 @@ var upload = function (req, res, next) {
}
});

cloudupload.on('data',function(data){
console.log('cloudupload data',data);

});
// cloudupload.on('data',function(data){
// console.log('cloudupload data',data);
// });

cloudupload.on('error',function(err){
console.log('cloudupload error',err);
Expand All @@ -133,8 +131,8 @@ var upload = function (req, res, next) {
returnFileObj.attributes.cloudfilepath = newfilepath;
returnFileObj.attributes.cloudcontainername = cloudStorageContainer.name || cloudStorageContainer;

console.log('cloudupload file',file)
console.log('returnFileObj', returnFileObj);
// console.log('cloudupload file',file)
// console.log('returnFileObj', returnFileObj);

req.controllerData.fileData = returnFileObj;
next();
Expand Down Expand Up @@ -172,7 +170,7 @@ var upload = function (req, res, next) {
var remove = function (req, res, next) {
var asset = req.controllerData.asset;
// console.log('asset', asset);
if (asset.locationtype === 'rackspace') {
if (asset.locationtype === 'rackspace' || asset.locationtype === 'amazon') {
async.parallel({
deletefile: function (callback) {
cloudstorageclient.removeFile(asset.attributes.cloudcontainername, asset.attributes.cloudfilepath, callback);
Expand Down Expand Up @@ -239,15 +237,20 @@ var createStorageContainer = function () {
name: appSettings.name
}
};
// if(cloudprovider.provider ==='amazon'){
// storageContainerOptions.params = {};
// storageContainerOptions.params.Bucket = cloudprovider.Bucket || cloudprovider.bucket || storageContainerOptions.name;
// }
if(cloudprovider.provider ==='amazon'){

cloudStorageContainer = cloudprovider.containername || cloudprovider.Bucket || cloudprovider.bucket;
cloudStoragePublicPath = {
cdnUri: 'http://'+cloudstorageclient.s3.config.endpoint+'/'+cloudStorageContainer,
cdnSslUri: cloudstorageclient.s3.endpoint.href+cloudStorageContainer,
endpoint:cloudstorageclient.s3.endpoint
}
}
// console.log('cloudstorageclient',cloudstorageclient);
// console.log('cloudprovider',cloudprovider);
// console.log('storageContainerOptions',storageContainerOptions);
// // console.log('storageContainerOptions',storageContainerOptions);

if(cloudprovider.provider ==='rackspace'){
else if(cloudprovider.provider ==='rackspace'){
cloudstorageclient.createContainer(
storageContainerOptions,
function (err, container) {
Expand All @@ -258,7 +261,7 @@ var createStorageContainer = function () {
throw Error(err);
}
else {
console.log('crearted container');
console.log('created container');
cloudStorageContainer = container;
if (cloudprovider.provider === 'rackspace') {
cloudstorageclient.setCdnEnabled(cloudStorageContainer, true, function (error, cont) {
Expand All @@ -274,17 +277,15 @@ var createStorageContainer = function () {
cdniOSUri: cont.cdniOSUri
};
// console.log('cont', cont);
// console.log('cloudStoragePublicPath', cloudStoragePublicPath);
logger.silly('Successfully Created CDN Bucket');
}
});
}
}
});
}
else{
cloudStorageContainer = cloudprovider.containername || cloudprovider.Bucket || cloudprovider.bucket;
cloudprovider.containername = cloudprovider.Bucket || cloudprovider.bucket;
}
cloudprovider.containername = cloudprovider.containername || cloudprovider.Bucket || cloudprovider.bucket || 'periodicjs';
}
catch (e) {
logger.error('cloudstorageclient.createContainer cloudStorageClientError');
Expand Down
2 changes: 1 addition & 1 deletion periodicjs.ext.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"periodicjs.ext.admin": {
"menu": {
"Extensions": {
"Cloud Uploads": "<a href=\"/p-admin/clouduploads/\">Cloud Upload</a>"
"Cloud Uploads": "<a href=\"/p-admin/extension/periodicjs.ext.clouduploads/\">Cloud Upload</a>"
}
}
}
Expand Down

0 comments on commit c29b93e

Please sign in to comment.