1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM CloudAdvent Calendar 2024

Day 13

ICOSのBucket内のオブジェクト一覧を出力する

Posted at

はじめに

・・・(技術検証中)・・・
よし、これで検証中のSWが処理したファイルが全てICOSのBucketに保存されたはず。
どんな感じでファイルが保存されてるか見にいこう。

image.png

おぉ、ファイルがいっぱい過ぎてわからん。。。

ファイル一覧取得のAPIがあるからそれでできるか?

バケット内のオブジェクトをリストします。 一度にリストできるのは 1,000 オブジェクトに制限されています。

1000個かぁ、超えてそうな気がする、、、どうしよう。

簡単なプログラム書きましょう

index.js
require('dotenv').config();
const IBM = require('ibm-cos-sdk');
const config = {
  endpoint: process.env.COS_ENDPOINT,
  apiKeyId: process.env.COS_APIKEY,
  serviceInstanceId: process.env.COS_INSTANCEID,
  signatureVersion: 'iam',
};
const bucketName = process.env.COS_BUCKET;
const cos = new IBM.S3(config);

const getBucketContents = (bucketName, marker) => {
  const config = {
    Bucket: bucketName,
  }
  if (marker) config["Marker"] = marker
  return cos.listObjects(config).promise()
  .then((data) => {
    if(data.Contents){
      data.Contents.forEach(object => {
        console.log(`"${object.Key}","${object.LastModified.toLocaleString('sv')}","${object.Size}"`);
      })
    }
    if(data.NextMarker) getBucketContents(bucketName, data.NextMarker)
  })
}  

(() => {
  getBucketContents(bucketName)
})();
.env
COS_ENDPOINT=s3.jp-tok.cloud-object-storage.appdomain.cloud
COS_APIKEY=<APIキー>
COS_INSTANCEID=<ICOSのインスタンスのCRN>
COS_BUCKET=<bucket名>

npmで下記をインストールするのを忘れないでください。

  • dotenv
  • ibm-cos-sdk

動いた

C:\node-apps\node-apps\icos-test>node index.js
"IBMCLOUDVPC-743-apphost-20220329114452.qcow2","2022-08-19 15:39:16","12409897472"
"IBMCLOUDVPC-743-console-20220329114452.qcow2","2022-08-19 14:28:12","11901534208"

ICOS内のObject名、更新日付、ファイルサイズ(Byte)でCSV出力されます。
1000件以上あってもループ処理で問題なく動きます。

さいごに

ICOSのBucket内のオブジェクト全量の情報が欲しいと思ったのですが、あまり情報が見当たらず、自分で簡単なプログラムを書いた次第でした。

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?