はじめに
最近、クラウドのWatson Studioでも、データアセットに登録したデータをproject-libというライブラリを使って簡単にアクセスできるようになりました。しかし、単純にファイルコピーする関数がないです。
そのやりかたのメモです。
前提
- Watson Studioのインスタンスが作成済みであること
- Watson Studioのプロジェクトが作成済みであること
- アクセストークンが作成済みであること
1.と2.がまだの場合は、次の記事で手順を確認して下さい。
無料でなんでも試せる! Watson Studioセットアップガイド
3.に関しては、簡単に手順を説明します。
プロジェクト管理の画面で一番右の、「設定」タブを選択します。

画面を下にスクロールし、「アクセス・トークン」の右にある「新規トークン」のリンクをクリックします。
下の画面で
① 名前はtoken1などと適当に設定
② アクセス・ロースは「エディター」を選択
③ 画面右下の「作成」ボタンをクリック
下のように「アクセス・トークン」ができていれば、新規作成に成功しています。
手順
Jupyter Notebook内のPythonでファイルをコピーするための手順は次のとおりです。
Notebookの新規作成
普通に「プロジェクトに追加」「Notebook」を選択して新規Notebookを作成します。
ランタイムもデフォルトの「Default Python 3.7 XS」のままで大丈夫です。
(以前はここで「Spark」を選択する必要がありましたが、今はその必要はありません。)
自動生成コードの挿入
次のNotebook内に、Tokenを利用したproject-lib用自動生成コードを挿入します。
① Notebook上部にある「三」のようなアイコンをクリック
② メニューから「プロジェクトトークンの挿入」を選択
一番上のセルが下の画面のようになっていれば、コードの自動生成に成功しています。
まず、このセルを実行して下さい。
ファイルコピー
ここまでの準備ができれば、あとは簡単なコードで、ファイルコピーができます。
以下にサンプルコードを示します。
# project-libを使ってデータアセットのファイルをローカルにコピーする
fn = 'cifar10-pytorch-sample.gz'
infile = project.get_file(fn)
with open(fn, 'wb') as local_file:
local_file.write(infile.read())
ls -lコマンドで実際にコピーできたか、確認してみます。
!ls -l
以下のようにうまくいきました。
total 4568
-rw-r----- 1 wsuser watsonstudio 4673955 Jan 12 02:38 cifar10-pytorch-sample.gz





