Waterbutler API とは

Waterbutler は、Center for Open Science (COS) が開発したファイルストレージ抽象化レイヤーです。OSF (Open Science Framework) および GakuNin RDM で使用されており、様々なストレージプロバイダー(OSF Storage、Amazon S3、Google Drive、Dropbox など)に対して統一的なAPIでファイル操作を行うことができます。

主な機能

  • ファイルのアップロード・ダウンロード
  • ファイル/フォルダの作成・削除・移動・コピー
  • メタデータの取得

エンドポイント

  • GakuNin RDM : https://files.rdm.nii.ac.jp/v1
  • OSF : https://files.osf.io/v1

参考リンク

問題

GakuNin RDM の Waterbutler API を使用してファイルをアップロードした後、そのファイルの詳細画面に直接遷移したい場合があります。

しかし、RDM上ではプロジェクトの短縮URL(例:https://rdm.nii.ac.jp/qv3xf/)が表示されるため、アップロードしたファイルの詳細画面URLをどのように構成すればよいかわかりにくい状況でした。

Waterbutler API のレスポンス

ファイルアップロード時の Waterbutler API レスポンス例:

{}"}da"""}"}tita,ladyt"""i""""ptnkpndm::eraiakoo"imntswv{":bedh"neou""":l"s"t:::o:ffe{asis"""d"tl"nf/"hoe:fi6:trstl7ta"{-ed"pg,4"ahse3,ct:/-at/6pap/7r8sfdo1:iav6/lce0/ean0fsaa0i.8n9lr1c0ed6e0sm0-1..020rn009di92emi051..0-dna11aic023i.9-".je2ap19cdT.va1j133p"-r,0ve81s-/o4ru7er.sczoeiuspr/"cw,ezs/9wgz/p9rgvpirdoevrisd/eorssf/sotsofrsatgoer/a6g7ed/a6c7adaa8c1a6a080106900000190090e110d9ae31"da3",

解決策:ファイル詳細URLの構成

ファイル詳細画面のURLは以下の形式で構成します:

https://rdm.nii.ac.jp/{nodeId}/files/{provider}/{fileId}
パラメータ説明取得方法
nodeIdプロジェクトIDアップロード時に指定した値(例:wzv9g
providerストレージプロバイダーアップロード時に指定した値(例:osfstorage
fileIdファイルIDレスポンスの data.id から抽出(osfstorage/ 以降の部分)

実装例(TypeScript)

cli}coefntci}nWsd(ofsatfadnfttitas(i:edlattilfrae.adeihbtIi.iPIltuaddddadUett:aPrRDpl=tat=Lesesarst:rat?t.ia/wr.sldi/AaiiePlrPind=naUdItg)grrm:dttl.r|{ahsne"t[=isuoa>iipns.d`.odfd1Phanesa)atcsfttrt.eioa{tpj.nr.sspjeai.:sdgdlwIo;e.e/zDn/snrv(6pgd9)7ltmg;dih./atnfc(-iia"ila/1.e8"]as1);c6;.o0js0pf0/s9$t0{o0nr1oa0dg9eeeI/1d6d}7a/d3fa"iclaeas8/1$6{0p0r0o9v0i0d1e0r9}e/1$d{af3ileId}`;

まとめ

  • 短縮URLhttps://rdm.nii.ac.jp/qv3xf/)はプロジェクトトップページ
  • ファイル詳細URL/{nodeId}/files/{provider}/{fileId} の形式で構成
  • fileId は Waterbutler API レスポンスの data.id から provider/ を除いた部分