Boto3でS3に読み書きする
「クラウド開発入門」を参考にして、Boto3を使ってS3に対していろいろな操作をした。そこで「はまったこと」「学んだこと」を備忘で記載。
はまったこと
-
-
- Jupyter Notebookを使った操作
S3上にファイルを作成する、読み込むなど複数の作業をしようとすると権限エラーが出てしまった。下記のサイトを参考に解決。スレッドセーフではないとのこと(よく分かってません)。
PythonのAWSライブラリBoto3のSessionはスレッドセーフではないよという話 | DevelopersIO
- S3上のオブジェクト名を表示する
前回に引き続き、JSONに適切に対応できなかった。「client.list_objects」を利用して、JSONで結果を出すことはすぐに成功した。しかし、2つあるオブジェクト名(Key)のみ表示したく、試行錯誤した。最終的に以下の形で表示できた。ググった感じだと、for などを使ってみればうまくいきそうだなと思ったが今回は諦めた。
objects = response['Contents']
print(objects[0]['Key'])
print(objects[1]['Key'])
- Jupyter Notebookを使った操作
-
学んだこと
-
-
- session を利用して、AWSシークレットキーの設定ができる
- S3のオブジェクトを一覧で一括表示するには工夫が必要(1000over)
-