Simple wrapper for uploading and deleting files from Google Cloud Storage.
Thanks to @bsphere for https://github.com/bsphere/node-gcs
npm install cloud-storage
-
Sign into the Google Cloud Console site: https://console.developers.google.com
-
Go to your project and under APIs & auth click on Credentials
-
Create an Oauth Service Account for your project if you don't already have one
-
Under the Service Account section copy your email address (that is your
accessId
) -
If you do not have a private key, click
Generate new key
to generate one (this will download a .p12 file to your computer) -
Convert the key to a .pem file
openssl pkcs12 -in path/to/key.p12 -nodes -nocerts > path/to/key.pem
-
If prompted for a password enter
notasecret
-
Store this .pem file somewhere secret (the path to this file is your
privateKey
)
var CloudStorage = require('cloud-storage');
var storage = new CloudStorage({
accessId: '1234-abcd@developer.gserviceaccount.com',
privateKey: '/path/to/private/key.pem'
});
// copy a local file or a url
storage.copy('/path/to/something.jpg', 'gs://some-bucket/something.jpg', function(err, url) {
// public url for your file
console.log(url);
});
storage.remove('gs://some-bucket/something.jpg', function(err, success) {
console.log(success);
});
// if you want to get crazy you can pass in options and metadata
var options = {
headers: {
'Cache-Control': 'public, max-age=7200, no-transform',
'X-Goog-Acl': 'bucket-owner-full-control'
},
metadata: {
'width': 100,
'height': 100
},
// remove the original file on disk after it is copied
removeAfterCopy: true,
// force an extension to be added to the destination
forceExtension: true
};
storage.copy('http://someurl.com/path/to/file.jpg', 'gs://some-bucket/images/file', options, function(err, url) {
});
var url = storage.getUrl('gs://some-bucket/images/file.jpg')
// expiration time in seconds
var options = {
expiration: 100,
download: true
};
var signedUrl = storage.getSignedUrl('gs://some-bucket/images/file.jpg', options)