Firebase ストレージ内の特定フォルダからすべての画像をダウンロードする方法


  1. Node.js を使用する方法: Firebase の公式ライブラリである firebase-admin パッケージを使用して、Node.js で画像をダウンロードすることができます。以下はそのコード例です。
const admin = require('firebase-admin');
const serviceAccount = require('./path/to/serviceAccountKey.json');
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  storageBucket: 'your-storage-bucket'
});
const bucket = admin.storage().bucket();
async function downloadImagesFromFolder() {
  const folderPath = 'your-folder-path';
  const [files] = await bucket.getFiles({ prefix: folderPath });

  for (const file of files) {
    const destination = `./path/to/save/${file.name}`;
    await file.download({ destination });
    console.log(`Downloaded ${file.name}`);
  }
}
downloadImagesFromFolder()
  .then(() => {
    console.log('All images downloaded successfully.');
  })
  .catch((error) => {
    console.error('Error downloading images:', error);
  });

上記のコードでは、serviceAccountKey.json ファイルは Firebase コンソールから入手できるサービスアカウントキーです。your-storage-bucket には Firebase Storage のバケット名を入力し、your-folder-path にはダウンロードしたい画像が格納されているフォルダのパスを指定します。

  1. Firebase Cloud Functions を使用する方法: Firebase Cloud Functions を使用して、サーバーレス環境で画像をダウンロードすることもできます。以下はそのコード例です。
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const bucket = admin.storage().bucket();
exports.downloadImagesFromFolder = functions.https.onRequest(async (req, res) => {
  const folderPath = 'your-folder-path';
  const [files] = await bucket.getFiles({ prefix: folderPath });

  for (const file of files) {
    const destination = `/tmp/${file.name}`;
    await file.download({ destination });
    console.log(`Downloaded ${file.name}`);
  }
  res.send('All images downloaded successfully.');
});

上記のコードでは、Firebase コンソールで Cloud Functions をセットアップしてデプロイする必要があります。your-folder-path にはダウンロードしたい画像が格納されているフォルダのパスを指定します。Cloud Functions の URL にアクセスすると、画像がダウンロードされます。

これらは Firebase Storage 内の特定フォルダからすべての画像をダウンロードするためのいくつかの方法です。必要に応じて適切な方法を選択し、コードをカスタマイズしてください。