Skip to content

Latest commit

 

History

History
55 lines (42 loc) · 1.35 KB

README.md

File metadata and controls

55 lines (42 loc) · 1.35 KB

ROIT Storage

Usage for Google Cloud Storage

In the env.yaml file add the googleStorageCredential{} attribute, with the number of folders inside the {}:

dev:
    googleStorageCredential{5}: my-credential.json

Inject in your desired class:

import { GoogleCloudHandler } from '@roit/roit-storage'

constructor( 
    private readonly googleCloudHandler: GoogleCloudHandler
) {}

To use the retrieveFromStorage method:

const filePath = 'path/from/my/file'
const bucketName = 'my-files-bucket'

const url = await this.googleCloudHandler.retrieveFromStorage(filePath, bucketName)
console.log(url) // outputs https://storage.googleapis.com/...

To use the getSignedUrl method:

const filePath = 'path/from/my/file'
const bucketName = 'my-files-bucket'

const url = await this.googleCloudHandler.getSignedUrl(filePath, bucketName)
console.log(url) 

The getSignedUrl method returns a URL from Google that you need to perform a HTTP POST with the binary encoded file you want to upload, here is a example in Insomnia:

insomnia-example

Nestjs Usage

In Nestjs, don't forget to add the GoogleCloudHandler on the AppModule as a provider:

@Module({
  imports: [],
  controllers: [],
  providers: [
    GoogleCloudHandler
  ],
})
export class AppModule { }