Upload a file without authentication

Upload a file without authentication

Code sample

Node.js

For more information, see the Cloud Storage Node.js API reference documentation.

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries.

/**
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// The ID of your GCS bucket
// const bucketName = 'your-unique-bucket-name';

// The contents that you want to upload
// const contents = 'these are my contents';

// The new ID for your GCS file
// const destFileName = 'your-new-file-name';

// Imports the Google Cloud Node.js client library
const {Storage} = require('@google-cloud/storage');

// Creates a client
const storage = new Storage();

async function uploadWithoutAuthentication() {
  const file = storage.bucket(bucketName).file(destFileName);

  // Returns an authenticated endpoint to which
  // you can make requests without credentials.
  const [location] = await file.createResumableUpload(); //auth required

  const options = {
    uri: location,
    resumable: true,
    validation: false,

    // Optional:
    // Set a generation-match precondition to avoid potential race conditions
    // and data corruptions. The request to upload is aborted if the object's
    // generation number does not match your precondition. For a destination
    // object that does not yet exist, set the ifGenerationMatch precondition to 0
    // If the destination object already exists in your bucket, set instead a
    // generation-match precondition using its generation number.
    preconditionOpts: {ifGenerationMatch: generationMatchPrecondition},
  };

  // Passes the location to file.save so you don't need to
  // authenticate this call
  await file.save(contents, options);

  console.log(`${destFileName} uploaded to ${bucketName}`);
}

uploadWithoutAuthentication().catch(console.error);

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.