
Security News
ECMAScript 2025 Finalized with Iterator Helpers, Set Methods, RegExp.escape, and More
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
gcloud-storage-json-upload
Advanced tools
Upload a file to Google Cloud Storage using the HTTP JSON api
This project makes it simple to upload a file to a Google Cloud Storage bucket using Google's HTTP JSON Api. This is an option you can use instead of having a dependency on the entire Google SDK toolchain, which can have some downsides.
Mainly, it's huge, over 80MB of node_modules. If you are packaging that into
a deployable package such as an Electron app or an executable created with pkg
then that is a huge dependency to pull in when all you want is to enable
uploading a file.
Secondly, the authentication token generation for service accounts is useful as you can use this token elsewhere with Google's services.
Firstly, see the simple-example/run_example.js
file for a sample of how to use
the code. Run it using
cd simple-example
node ./run_example.js --file=FILE_TO_UPLOAD --service_key=SERVICE_KEY_FILE
The SERVICE_KEY_FILE
is a file containing your generated private key for a
service account. You can generate a new one by going to the URL
https://console.firebase.google.com/u/0/project/<YOUR PROJECT ID>/settings/serviceaccounts/adminsdk
and clicking the Generate new private key
button.
There are two modules, auth
and upload
.
auth
authenticates your application using the private key and service account
email address. It returns a Promise. To use it, do the following:const {auth} = require('gcloud-storage-json-upload');
const privateKey = ......
const serviceAccountEmail = ......
auth(privateKey, serviceAccountEmail).then(token => {
// Cool, I have a token that lasts for an hour, I can do stuff with it!
})
upload
uploads a file to the server. You pass it the source file path to upload,
the token you received from the auth
function, the storage ID of the
Google Cloud storage bucket you are using and the content type.
The storage ID is generally the same as the project_id
field in the private key file.
You can optionally tell it the content type of the file, e.g. "text/plain", "text/csv" etc, and
the destination path to store the file in the bucket. These default to "text/plain" and
the root folder with the source file name.const {auth, upload} = require('gcloud-storage-json-upload');
const filePath = .....
const privateKey = ......
const serviceAccountEmail = ......
const storageID = ......
auth(privateKey, serviceAccountEmail).then(token => {
upload(filePath, token, storageID, "text/csv", `my_csvs/newFile.csv`).then(() => {
console.log('Sweet my file uploaded');
}).catch((err) => {
console.log('Uh oh, file upload failed with error',err);
});
})
There are two examples in this project.
simple-example
folder.nextjs-gcloud-auth-example
folder.FAQs
Upload a file to Google Cloud Storage using the HTTP JSON api
The npm package gcloud-storage-json-upload receives a total of 2 weekly downloads. As such, gcloud-storage-json-upload popularity was classified as not popular.
We found that gcloud-storage-json-upload demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
Research
North Korean threat actors linked to the Contagious Interview campaign return with 35 new malicious npm packages using a stealthy multi-stage malware loader.