😸

GakuNin RDMのAPIを使って、ファイルのアップロードなどを行う

2024/11/16に公開

背景

GakuNin RDMのAPIを使って、ファイルのアップロードなどを行う方法の備忘録です。

参考

以下でPAT(パーソナルアクセストークン)の取得方法などを説明しています。

https://zenn.dev/nakamura196/articles/7eca0fc1b3a272

また以下では、OAuth (Open Authorization)を使った方法を紹介しています。Webアプリなどから使用される場合には、こちらが参考になりましたら幸いです。

https://zenn.dev/nakamura196/articles/902201937f6592

方法

nbdevを使って、以下のリポジトリを作成しました。

https://github.com/nakamura196/grdm-tools

以下でドキュメントを確認できます。

https://nakamura196.github.io/grdm-tools/

プロバイダ(osfstorage)とフォルダのID(6735a92e6dc8e1001062ac08)は変更する必要がありますが、以下のようなスクリプトにより、特定のフォルダにファイルをアップロードできます。

from grdm_tools.api import GrdmClient
import os
client = GrdmClient(
    token=os.environ.get('GRDM_TOKEN')
)
project_id = "ys86g"
file_path = "./sample.png"
url = f"https://files.rdm.nii.ac.jp/v1/resources/{project_id}/providers/osfstorage/6735a92e6dc8e1001062ac08/?kind=file"
client.upload_file(file_path, url)

ソースコードは以下からご確認いただけます。

https://nakamura196.github.io/grdm-tools/api.html#grdmclient.upload_file

まとめ

GakuNin RDMのAPI利用にあたり、参考になりましたら幸いです。

Discussion