🙆‍♀️

FunctionのstorageにCSVファイルを保存する

2023/10/12に公開

CSVファイルをstorageに保存する話

実務でfirestoreから取得した値をfirebaseのstorageにCSV出力を行ったので備忘録として記載します。

必要事項

functionにてCSVファイルを保存する場合、下記を宣言して

const { Storage } = require('@google-cloud/storage')
const storage = new Storage()

// Firebaseコンソールから取得したバケット名を指定
const bucketName = 'xxxxxxxxxxx.appspot.com'
// ファイル名
const fileName = 'data.csv'

const bucket = storage.bucket(bucketName)
const file = bucket.file(fileName)

// ここでなんらかのファイルを作成するための処理を記載する
// 例は省略
// その後下記にてファイルを保存

 // CSVファイルをFirebase Storageに出力
      await file.save(Data, { // dataには保存したい内容のデータが入る
        contentType: 'text/csv', // CSV形式
        // metadataはExcelで開いた際の文字化けを防ぐ為
	metadata: {
          contentType: 'text/csv',
          charset: 'utf-8',
          cacheControl: 'public,max-age=3600', 
        },
      })

file.saveでファイルをstorageに保存することができる。

ファイルデータを動かす場合

const moveFileName = `test/moveData.csv`
const matchPrecondition = 0
// ファイル移動
await file.move(moveFileName, { preconditionOpts: {
	ifGenerationMatch: matchPrecondition
	  } })
    .catch((error) => { console.error(error) })
})

file.moveでstorage内で移動ができます。
フォルダの中に入れたい場合は先にフォルダを作成する必要があるのでそこだけ注意です。

以上

Discussion