Class File (7.3.2)

A File object is created from your Bucket object using .

Inheritance

ServiceObject < File , FileMetadata > > File

Package

@google-cloud/storage

Constructors

(constructor)(bucket, name, options)

  constructor 
 ( 
 bucket 
 : 
  
 Bucket 
 , 
  
 name 
 : 
  
 string 
 , 
  
 options 
 ?: 
  
 FileOptions 
 ); 
 

Constructs a file object.

Parameters
Name
Description
bucket
Bucket

The Bucket instance this file is attached to.

name
string

The name of the remote file.

options
FileOptions

Configuration options.

Example
  const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 const 
  
 myBucket 
  
 = 
  
 storage 
 . 
 bucket 
 ( 
 'my-bucket' 
 ); 
 const 
  
 file 
  
 = 
  
 myBucket 
 . 
 file 
 ( 
 'my-file' 
 ); 
 

Properties

acl

  acl 
 : 
  
 Acl 
 ; 
 

bucket

  bucket 
 : 
  
 Bucket 
 ; 
 

cloudStorageURI

  get 
  
 cloudStorageURI 
 () 
 : 
  
 URL 
 ; 
 

The object's Cloud Storage URI ( gs:// )

Example
  ts 
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 const 
  
 bucket 
  
 = 
  
 storage 
 . 
 bucket 
 ( 
 'my-bucket' 
 ); 
 const 
  
 file 
  
 = 
  
 bucket 
 . 
 file 
 ( 
 'image.png' 
 ); 
 // `gs://my-bucket/image.png` 
 const 
  
 href 
  
 = 
  
 file 
 . 
 cloudStorageURI 
 . 
 href 
 ; 
 

crc32cGenerator

  crc32cGenerator 
 : 
  
 CRC32CValidatorGenerator 
 ; 
 

generation

  generation 
 ?: 
  
 number 
 ; 
 

instancePreconditionOpts

  instancePreconditionOpts 
 ?: 
  
 PreconditionOptions 
 ; 
 

kmsKeyName

  kmsKeyName 
 ?: 
  
 string 
 ; 
 

name

  name 
 : 
  
 string 
 ; 
 

parent

  parent 
 : 
  
 Bucket 
 ; 
 

signer

  signer 
 ?: 
  
 URLSigner 
 ; 
 

storage

  storage 
 : 
  
 Storage 
 ; 
 

userProject

  userProject 
 ?: 
  
 string 
 ; 
 

Methods

copy(destination, options)

  copy 
 ( 
 destination 
 : 
  
 string 
  
 | 
  
 Bucket 
  
 | 
  
 File 
 , 
  
 options 
 ?: 
  
 CopyOptions 
 ) 
 : 
  
 Promise<CopyResponse> 
 ; 
 
Parameters
Name
Description
destination
string | Bucket | File
options
Returns
Type
Description
Promise < CopyResponse >

copy(destination, callback)

  copy 
 ( 
 destination 
 : 
  
 string 
  
 | 
  
 Bucket 
  
 | 
  
 File 
 , 
  
 callback 
 : 
  
 CopyCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
destination
string | Bucket | File
callback
Returns
Type
Description
void

copy(destination, options, callback)

  copy 
 ( 
 destination 
 : 
  
 string 
  
 | 
  
 Bucket 
  
 | 
  
 File 
 , 
  
 options 
 : 
  
 CopyOptions 
 , 
  
 callback 
 : 
  
 CopyCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
destination
string | Bucket | File
options
callback
Returns
Type
Description
void

createReadStream(options)

  createReadStream 
 ( 
 options 
 ?: 
  
 CreateReadStreamOptions 
 ) 
 : 
  
 Readable 
 ; 
 

Create a readable stream to read the contents of the remote file. It can be piped to a writable stream or listened to for 'data' events to read a file's contents.

In the unlikely event there is a mismatch between what you downloaded and the version in your Bucket, your error handler will receive an error with code "CONTENT_DOWNLOAD_MISMATCH". If you receive this error, the best recourse is to try downloading the file again.

NOTE: Readable streams will emit the end event when the file is fully downloaded.

Parameter
Name
Description
options
CreateReadStreamOptions

Configuration options.

Returns
Type
Description
Readable

{ReadableStream}

Example
  //- 
 // 

Downloading a File

// // The example below demonstrates how we can reference a remote file, then // pipe its contents to a local file. This is effectively creating a local // backup of your remote data. //- const { Storage } = require ( ' @google-cloud/storage ' ); const storage = new Storage (); const bucket = storage . bucket ( 'my-bucket' ); const fs = require ( 'fs' ); const remoteFile = bucket . file ( 'image.png' ); const localFilename = '/Users/stephen/Photos/image.png' ; remoteFile . createReadStream () . on ( 'error' , function ( err ) {}) . on ( 'response' , function ( response ) { // Server connected and responded with the specified status and headers. }) . on ( 'end' , function () { // The file is fully downloaded. }) . pipe ( fs . createWriteStream ( localFilename )); //- // To limit the downloaded data to only a byte range, pass an options // object. //- const logFile = myBucket . file ( 'access_log' ); logFile . createReadStream ({ start : 10000 , end : 20000 }) . on ( 'error' , function ( err ) {}) . pipe ( fs . createWriteStream ( '/Users/stephen/logfile.txt' )); //- // To read a tail byte range, specify only `options.end` as a negative // number. //- const logFile = myBucket . file ( 'access_log' ); logFile . createReadStream ({ end : - 100 }) . on ( 'error' , function ( err ) {}) . pipe ( fs . createWriteStream ( '/Users/stephen/logfile.txt' ));

createResumableUpload(options)

  createResumableUpload 
 ( 
 options 
 ?: 
  
 CreateResumableUploadOptions 
 ) 
 : 
  
 Promise<CreateResumableUploadResponse> 
 ; 
 
Parameter
Name
Description
Returns
Type
Description

createResumableUpload(options, callback)

  createResumableUpload 
 ( 
 options 
 : 
  
 CreateResumableUploadOptions 
 , 
  
 callback 
 : 
  
 CreateResumableUploadCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
Returns
Type
Description
void

createResumableUpload(callback)

  createResumableUpload 
 ( 
 callback 
 : 
  
 CreateResumableUploadCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
Returns
Type
Description
void

createWriteStream(options)

  createWriteStream 
 ( 
 options 
 ?: 
  
 CreateWriteStreamOptions 
 ) 
 : 
  
 Writable 
 ; 
 

Create a writable stream to overwrite the contents of the file in your bucket.

A File object can also be used to create files for the first time.

Resumable uploads are automatically enabled and must be shut off explicitly by setting options.resumable to false .

There is some overhead when using a resumable upload that can cause noticeable performance degradation while uploading a series of small files. When uploading files less than 10MB, it is recommended that the resumable feature is disabled.

NOTE: Writable streams will emit the finish event when the file is fully uploaded.

See Upload Options (Simple or Resumable) See Objects: insert API Documentation

Parameter
Name
Description
options
CreateWriteStreamOptions

Configuration options.

Returns
Type
Description
Writable

{WritableStream}

Example
  const 
  
 fs 
  
 = 
  
 require 
 ( 
 'fs' 
 ); 
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 const 
  
 myBucket 
  
 = 
  
 storage 
 . 
 bucket 
 ( 
 'my-bucket' 
 ); 
 const 
  
 file 
  
 = 
  
 myBucket 
 . 
 file 
 ( 
 'my-file' 
 ); 
 //- 
 // 

Uploading a File

// // Now, consider a case where we want to upload a file to your bucket. You // have the option of using {@link Bucket#upload}, but that is just // a convenience method which will do the following. //- fs . createReadStream ( '/Users/stephen/Photos/birthday-at-the-zoo/panda.jpg' ) . pipe ( file . createWriteStream ()) . on ( 'error' , function ( err ) {}) . on ( 'finish' , function () { // The file upload is complete. }); //- //

Uploading a File with gzip compression

//- fs . createReadStream ( '/Users/stephen/site/index.html' ) . pipe ( file . createWriteStream ({ gzip : true })) . on ( 'error' , function ( err ) {}) . on ( 'finish' , function () { // The file upload is complete. }); //- // Downloading the file with `createReadStream` will automatically decode // the file. //- //- // // // One last case you may run into is when you want to upload a file to your // bucket and set its metadata at the same time. Like above, you can use // {@link Bucket#upload} to do this, which is just a wrapper around // the following. //- fs . createReadStream ( '/Users/stephen/Photos/birthday-at-the-zoo/panda.jpg' ) . pipe ( file . createWriteStream ({ metadata : { contentType : 'image/jpeg' , metadata : { custom : 'metadata' } } })) . on ( 'error' , function ( err ) {}) . on ( 'finish' , function () { // The file upload is complete. });

delete(options)

  delete 
 ( 
 options 
 ?: 
  
 DeleteOptions 
 ) 
 : 
  
 Promise 
< [ 
 r 
 . 
 Response 
 ]>; 
 

Delete the object.

Parameter
Name
Description
options
DeleteOptions
Returns
Type
Description
Promise <[ Response ]>

delete(options, callback)

  delete 
 ( 
 options 
 : 
  
 DeleteOptions 
 , 
  
 callback 
 : 
  
 DeleteCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
options
DeleteOptions
callback
DeleteCallback
Returns
Type
Description
void

delete(callback)

  delete 
 ( 
 callback 
 : 
  
 DeleteCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
callback
DeleteCallback
Returns
Type
Description
void

disableAutoRetryConditionallyIdempotent_(coreOpts, methodType, localPreconditionOptions)

  disableAutoRetryConditionallyIdempotent_ 
 ( 
 coreOpts 
 : 
  
 any 
 , 
  
 methodType 
 : 
  
 AvailableServiceObjectMethods 
 , 
  
 localPreconditionOptions 
 ?: 
  
 PreconditionOptions 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
coreOpts
any
methodType
AvailableServiceObjectMethods
localPreconditionOptions
Returns
Type
Description
void

download(options)

  download 
 ( 
 options 
 ?: 
  
 DownloadOptions 
 ) 
 : 
  
 Promise<DownloadResponse> 
 ; 
 
Parameter
Name
Description
options
Returns
Type
Description
Promise < DownloadResponse >

download(options, callback)

  download 
 ( 
 options 
 : 
  
 DownloadOptions 
 , 
  
 callback 
 : 
  
 DownloadCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
options
callback
Returns
Type
Description
void

download(callback)

  download 
 ( 
 callback 
 : 
  
 DownloadCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
callback
Returns
Type
Description
void

generateSignedPostPolicyV2(options)

  generateSignedPostPolicyV2 
 ( 
 options 
 : 
  
 GenerateSignedPostPolicyV2Options 
 ) 
 : 
  
 Promise<GenerateSignedPostPolicyV2Response> 
 ; 
 
Parameter
Name
Description
Returns
Type
Description

generateSignedPostPolicyV2(options, callback)

  generateSignedPostPolicyV2 
 ( 
 options 
 : 
  
 GenerateSignedPostPolicyV2Options 
 , 
  
 callback 
 : 
  
 GenerateSignedPostPolicyV2Callback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
Returns
Type
Description
void

generateSignedPostPolicyV2(callback)

  generateSignedPostPolicyV2 
 ( 
 callback 
 : 
  
 GenerateSignedPostPolicyV2Callback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
Returns
Type
Description
void

generateSignedPostPolicyV4(options)

  generateSignedPostPolicyV4 
 ( 
 options 
 : 
  
 GenerateSignedPostPolicyV4Options 
 ) 
 : 
  
 Promise<GenerateSignedPostPolicyV4Response> 
 ; 
 
Parameter
Name
Description
Returns
Type
Description

generateSignedPostPolicyV4(options, callback)

  generateSignedPostPolicyV4 
 ( 
 options 
 : 
  
 GenerateSignedPostPolicyV4Options 
 , 
  
 callback 
 : 
  
 GenerateSignedPostPolicyV4Callback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
Returns
Type
Description
void

generateSignedPostPolicyV4(callback)

  generateSignedPostPolicyV4 
 ( 
 callback 
 : 
  
 GenerateSignedPostPolicyV4Callback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
Returns
Type
Description
void

getExpirationDate()

  getExpirationDate 
 () 
 : 
  
 Promise<GetExpirationDateResponse> 
 ; 
 
Returns
Type
Description

getExpirationDate(callback)

  getExpirationDate 
 ( 
 callback 
 : 
  
 GetExpirationDateCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
Returns
Type
Description
void

getSignedUrl(cfg)

  getSignedUrl 
 ( 
 cfg 
 : 
  
 GetSignedUrlConfig 
 ) 
 : 
  
 Promise<GetSignedUrlResponse> 
 ; 
 
Parameter
Name
Description
Returns
Type
Description
Promise < GetSignedUrlResponse >

getSignedUrl(cfg, callback)

  getSignedUrl 
 ( 
 cfg 
 : 
  
 GetSignedUrlConfig 
 , 
  
 callback 
 : 
  
 GetSignedUrlCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
Returns
Type
Description
void

isPublic()

  isPublic 
 () 
 : 
  
 Promise<IsPublicResponse> 
 ; 
 
Returns
Type
Description
Promise < IsPublicResponse >

isPublic(callback)

  isPublic 
 ( 
 callback 
 : 
  
 IsPublicCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
callback
IsPublicCallback
Returns
Type
Description
void

makePrivate(options)

  makePrivate 
 ( 
 options 
 ?: 
  
 MakeFilePrivateOptions 
 ) 
 : 
  
 Promise<MakeFilePrivateResponse> 
 ; 
 
Parameter
Name
Description
Returns
Type
Description

makePrivate(callback)

  makePrivate 
 ( 
 callback 
 : 
  
 MakeFilePrivateCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
Returns
Type
Description
void

makePrivate(options, callback)

  makePrivate 
 ( 
 options 
 : 
  
 MakeFilePrivateOptions 
 , 
  
 callback 
 : 
  
 MakeFilePrivateCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
Returns
Type
Description
void

makePublic()

  makePublic 
 () 
 : 
  
 Promise<MakeFilePublicResponse> 
 ; 
 
Returns
Type
Description

makePublic(callback)

  makePublic 
 ( 
 callback 
 : 
  
 MakeFilePublicCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
Returns
Type
Description
void

move(destination, options)

  move 
 ( 
 destination 
 : 
  
 string 
  
 | 
  
 Bucket 
  
 | 
  
 File 
 , 
  
 options 
 ?: 
  
 MoveOptions 
 ) 
 : 
  
 Promise<MoveResponse> 
 ; 
 
Parameters
Name
Description
destination
string | Bucket | File
options
Returns
Type
Description
Promise < MoveResponse >

move(destination, callback)

  move 
 ( 
 destination 
 : 
  
 string 
  
 | 
  
 Bucket 
  
 | 
  
 File 
 , 
  
 callback 
 : 
  
 MoveCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
destination
string | Bucket | File
callback
Returns
Type
Description
void

move(destination, options, callback)

  move 
 ( 
 destination 
 : 
  
 string 
  
 | 
  
 Bucket 
  
 | 
  
 File 
 , 
  
 options 
 : 
  
 MoveOptions 
 , 
  
 callback 
 : 
  
 MoveCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
destination
string | Bucket | File
options
callback
Returns
Type
Description
void

publicUrl()

  publicUrl 
 () 
 : 
  
 string 
 ; 
 

The public URL of this File Use to enable anonymous access via the returned URL.

Returns
Type
Description
string

{string}

Example
  const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 const 
  
 bucket 
  
 = 
  
 storage 
 . 
 bucket 
 ( 
 'albums' 
 ); 
 const 
  
 file 
  
 = 
  
 bucket 
 . 
 file 
 ( 
 'my-file' 
 ); 
 // publicUrl will be "https://storage.googleapis.com/albums/my-file" 
 const 
  
 publicUrl 
  
 = 
  
 file 
 . 
  publicUrl 
 
 (); 
 

rename(destinationFile, options)

  rename 
 ( 
 destinationFile 
 : 
  
 string 
  
 | 
  
 File 
 , 
  
 options 
 ?: 
  
 RenameOptions 
 ) 
 : 
  
 Promise<RenameResponse> 
 ; 
 
Parameters
Name
Description
destinationFile
string | File
options
RenameOptions
Returns
Type
Description
Promise < RenameResponse >

rename(destinationFile, callback)

  rename 
 ( 
 destinationFile 
 : 
  
 string 
  
 | 
  
 File 
 , 
  
 callback 
 : 
  
 RenameCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
destinationFile
string | File
callback
RenameCallback
Returns
Type
Description
void

rename(destinationFile, options, callback)

  rename 
 ( 
 destinationFile 
 : 
  
 string 
  
 | 
  
 File 
 , 
  
 options 
 : 
  
 RenameOptions 
 , 
  
 callback 
 : 
  
 RenameCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
destinationFile
string | File
options
RenameOptions
callback
RenameCallback
Returns
Type
Description
void

request(reqOpts)

  request 
 ( 
 reqOpts 
 : 
  
 DecorateRequestOptions 
 ) 
 : 
  
 Promise<RequestResponse> 
 ; 
 
Parameter
Name
Description
reqOpts
DecorateRequestOptions
Returns
Type
Description
Promise < RequestResponse >

request(reqOpts, callback)

  request 
 ( 
 reqOpts 
 : 
  
 DecorateRequestOptions 
 , 
  
 callback 
 : 
  
 BodyResponseCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
reqOpts
DecorateRequestOptions
callback
BodyResponseCallback
Returns
Type
Description
void

rotateEncryptionKey(options)

  rotateEncryptionKey 
 ( 
 options 
 ?: 
  
 RotateEncryptionKeyOptions 
 ) 
 : 
  
 Promise<RotateEncryptionKeyResponse> 
 ; 
 
Parameter
Name
Description
Returns
Type
Description

rotateEncryptionKey(callback)

  rotateEncryptionKey 
 ( 
 callback 
 : 
  
 RotateEncryptionKeyCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameter
Name
Description
Returns
Type
Description
void

rotateEncryptionKey(options, callback)

  rotateEncryptionKey 
 ( 
 options 
 : 
  
 RotateEncryptionKeyOptions 
 , 
  
 callback 
 : 
  
 RotateEncryptionKeyCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
Returns
Type
Description
void

save(data, options)

  save 
 ( 
 data 
 : 
  
 SaveData 
 , 
  
 options 
 ?: 
  
 SaveOptions 
 ) 
 : 
  
 Promise<void> 
 ; 
 
Parameters
Name
Description
data
SaveData
options
Returns
Type
Description
Promise <void>

save(data, callback)

  save 
 ( 
 data 
 : 
  
 SaveData 
 , 
  
 callback 
 : 
  
 SaveCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
data
SaveData
callback
Returns
Type
Description
void

save(data, options, callback)

  save 
 ( 
 data 
 : 
  
 SaveData 
 , 
  
 options 
 : 
  
 SaveOptions 
 , 
  
 callback 
 : 
  
 SaveCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
data
SaveData
options
callback
Returns
Type
Description
void

setEncryptionKey(encryptionKey)

  setEncryptionKey 
 ( 
 encryptionKey 
 : 
  
 string 
  
 | 
  
 Buffer 
 ) 
 : 
  
 this 
 ; 
 

The Storage API allows you to use a custom key for server-side encryption.

See Customer-supplied Encryption Keys

Parameter
Name
Description
encryptionKey
string | "\"buffer\"".__global.Buffer

An AES-256 encryption key.

Returns
Type
Description
this

{File}

Examples
  const 
  
 crypto 
  
 = 
  
 require 
 ( 
 'crypto' 
 ); 
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 const 
  
 myBucket 
  
 = 
  
 storage 
 . 
 bucket 
 ( 
 'my-bucket' 
 ); 
 const 
  
 encryptionKey 
  
 = 
  
 crypto 
 . 
 randomBytes 
 ( 
 32 
 ); 
 const 
  
 fileWithCustomEncryption 
  
 = 
  
 myBucket 
 . 
 file 
 ( 
 'my-file' 
 ); 
 fileWithCustomEncryption 
 . 
  setEncryptionKey 
 
 ( 
 encryptionKey 
 ); 
 const 
  
 fileWithoutCustomEncryption 
  
 = 
  
 myBucket 
 . 
 file 
 ( 
 'my-file' 
 ); 
 fileWithCustomEncryption 
 . 
  save 
 
 ( 
 'data' 
 , 
  
 function 
 ( 
 err 
 ) 
  
 { 
  
 // Try to download with the File object that hasn't had 
  
 // `setEncryptionKey()` called: 
  
 fileWithoutCustomEncryption 
 . 
  download 
 
 ( 
 function 
 ( 
 err 
 ) 
  
 { 
  
 // We will receive an error: 
  
 //   err.message === 'Bad Request' 
  
 // Try again with the File object we called `setEncryptionKey()` on: 
  
 fileWithCustomEncryption 
 . 
  download 
 
 ( 
 function 
 ( 
 err 
 , 
  
 contents 
 ) 
  
 { 
  
 // contents.toString() === 'data' 
  
 }); 
  
 }); 
 }); 
 

Example of uploading an encrypted file:

   
 /** 
 * TODO(developer): Uncomment the following lines before running the sample. 
 */ 
  
 // The ID of your GCS bucket 
  
 // const bucketName = 'your-unique-bucket-name'; 
  
 // The path to your file to upload 
  
 // const filePath = 'path/to/your/file'; 
  
 // The new ID for your GCS file 
  
 // const destFileName = 'your-new-file-name'; 
  
 // The key to encrypt the object with 
  
 // const key = 'TIbv/fjexq+VmtXzAlc63J4z5kFmWJ6NdAPQulQBT7g='; 
  
 // Imports the Google Cloud client library 
  
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
  
 // Creates a client 
  
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
  
 async 
  
 function 
  
 uploadEncryptedFile 
 () 
  
 { 
  
 const 
  
 options 
  
 = 
  
 { 
  
 destination 
 : 
  
 destFileName 
 , 
  
 encryptionKey 
 : 
  
 Buffer 
 . 
 from 
 ( 
 key 
 , 
  
 ' base64 
' 
 ), 
  
 // 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 
 }, 
  
 }; 
  
 await 
  
 storage 
 . 
 bucket 
 ( 
 bucketName 
 ). 
  upload 
 
 ( 
 filePath 
 , 
  
 options 
 ); 
  
 console 
 . 
 log 
 ( 
  
 `File 
 ${ 
 filePath 
 } 
 uploaded to gs:// 
 ${ 
 bucketName 
 } 
 / 
 ${ 
 destFileName 
 } 
 ` 
  
 ); 
  
 } 
  
 uploadEncryptedFile 
 (). 
 catch 
 ( 
 console 
 . 
 error 
 ); 
 

Example of downloading an encrypted file:

   
 /** 
 * TODO(developer): Uncomment the following lines before running the sample. 
 */ 
  
 // The ID of your GCS bucket 
  
 // const bucketName = 'your-unique-bucket-name'; 
  
 // The ID of your GCS file 
  
 // const srcFileName = 'your-file-name'; 
  
 // The path to which the file should be downloaded 
  
 // const destFileName = '/local/path/to/file.txt'; 
  
 // The Base64 encoded decryption key, which should be the same key originally 
  
 // used to encrypt the file 
  
 // const encryptionKey = 'TIbv/fjexq+VmtXzAlc63J4z5kFmWJ6NdAPQulQBT7g='; 
  
 // Imports the Google Cloud client library 
  
 const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
  
 // Creates a client 
  
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
  
 async 
  
 function 
  
 downloadEncryptedFile 
 () 
  
 { 
  
 const 
  
 options 
  
 = 
  
 { 
  
 destination 
 : 
  
 destFileName 
 , 
  
 }; 
  
 // Decrypts and downloads the file. This can only be done with the key used 
  
 // to encrypt and upload the file. 
  
 await 
  
 storage 
  
 . 
 bucket 
 ( 
 bucketName 
 ) 
  
 . 
 file 
 ( 
 srcFileName 
 ) 
  
 . 
  setEncryptionKey 
 
 ( 
 Buffer 
 . 
 from 
 ( 
 encryptionKey 
 , 
  
 ' base64 
' 
 )) 
  
 . 
  download 
 
 ( 
 options 
 ); 
  
 console 
 . 
 log 
 ( 
 `File 
 ${ 
 srcFileName 
 } 
 downloaded to 
 ${ 
 destFileName 
 } 
 ` 
 ); 
  
 } 
  
 downloadEncryptedFile 
 (). 
 catch 
 ( 
 console 
 . 
 error 
 ); 
 
  setMetadata 
 ( 
 metadata 
 : 
  
 FileMetadata 
 , 
  
 options 
 ?: 
  
 SetMetadataOptions 
 ) 
 : 
  
 Promise<SetMetadataResponse<FileMetadata> 
> ; 
 
Parameters
Name
Description
metadata
options
SetMetadataOptions
Returns
Type
Description
Promise < SetMetadataResponse < FileMetadata >>
  setMetadata 
 ( 
 metadata 
 : 
  
 FileMetadata 
 , 
  
 callback 
 : 
  
 MetadataCallback<FileMetadata> 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
metadata
callback
MetadataCallback < FileMetadata >
Returns
Type
Description
void
  setMetadata 
 ( 
 metadata 
 : 
  
 FileMetadata 
 , 
  
 options 
 : 
  
 SetMetadataOptions 
 , 
  
 callback 
 : 
  
 MetadataCallback<FileMetadata> 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
metadata
options
SetMetadataOptions
callback
MetadataCallback < FileMetadata >
Returns
Type
Description
void

setStorageClass(storageClass, options)

  setStorageClass 
 ( 
 storageClass 
 : 
  
 string 
 , 
  
 options 
 ?: 
  
 SetStorageClassOptions 
 ) 
 : 
  
 Promise<SetStorageClassResponse> 
 ; 
 
Parameters
Name
Description
storageClass
string
Returns
Type
Description

setStorageClass(storageClass, options, callback)

  setStorageClass 
 ( 
 storageClass 
 : 
  
 string 
 , 
  
 options 
 : 
  
 SetStorageClassOptions 
 , 
  
 callback 
 : 
  
 SetStorageClassCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
storageClass
string
Returns
Type
Description
void

setStorageClass(storageClass, callback)

  setStorageClass 
 ( 
 storageClass 
 : 
  
 string 
 , 
  
 callback 
 ?: 
  
 SetStorageClassCallback 
 ) 
 : 
  
 void 
 ; 
 
Parameters
Name
Description
storageClass
string
Returns
Type
Description
void

setUserProject(userProject)

  setUserProject 
 ( 
 userProject 
 : 
  
 string 
 ) 
 : 
  
 void 
 ; 
 

Set a user project to be billed for all requests made from this File object.

Parameter
Name
Description
userProject
string

The user project.

Returns
Type
Description
void
Example
  const 
  
 { 
 Storage 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/storage 
' 
 ); 
 const 
  
 storage 
  
 = 
  
 new 
  
 Storage 
 (); 
 const 
  
 bucket 
  
 = 
  
 storage 
 . 
 bucket 
 ( 
 'albums' 
 ); 
 const 
  
 file 
  
 = 
  
 bucket 
 . 
 file 
 ( 
 'my-file' 
 ); 
 file 
 . 
 setUserProject 
 ( 
 'grape-spaceship-123' 
 ); 
 

startResumableUpload_(dup, options)

  startResumableUpload_ 
 ( 
 dup 
 : 
  
 Duplexify 
 , 
  
 options 
 ?: 
  
 CreateResumableUploadOptions 
 ) 
 : 
  
 void 
 ; 
 

This creates a resumable-upload upload stream.

Parameters
Name
Description
dup
Duplexify
options
CreateResumableUploadOptions

Configuration object.

Returns
Type
Description
void

startSimpleUpload_(dup, options)

  startSimpleUpload_ 
 ( 
 dup 
 : 
  
 Duplexify 
 , 
  
 options 
 ?: 
  
 CreateWriteStreamOptions 
 ) 
 : 
  
 void 
 ; 
 

Takes a readable stream and pipes it to a remote file. Unlike startResumableUpload_ , which uses the resumable upload technique, this method uses a simple upload (all or nothing).

Parameters
Name
Description
dup
Duplexify

Duplexify stream of data to pipe to the file.

options
CreateWriteStreamOptions

Configuration object.

Returns
Type
Description
void
Design a Mobile Site
View Site in Mobile | Classic
Share by: