0
0

More than 1 year has passed since last update.

Python ColabでASWのS3からダウンロードする

Posted at

イントロ

AWSのS3のバケットは、流行っているデータ保存先ですね。人工衛星のデータを会社によりよく使用します。しかし、Pythonで直接に読み込めませんが、ダウンロードできます。本日の記事には、GoogleのColabでは、AWSのS3バケットからデータをダウンロードし方を紹介します。

セットアップ

最初に、ColabでAWSのモジュールをインストールしたいです。Pipでawsとaswcliのモジュールをインストールして、AWSを繋げるようになります。そしてColabの場合は、ドライバーに接続します。

!pip3 install aws 
!pip3 install awscli 
#Colab link drive 
from google.colab import drive 
drive.mount('/content/drive')

次に、AWSのアカウントを設定します。AccessID(アクセント番号)とAccessKey(アクセントガキ)が必要です。持っていない場合は、AWSの記事をご覧ください リンク. このアクセント情報が持っていうると、「awscli.ini」というファイルを作りました。AWSを繋げるために、このファイルが必要です。このファイルの中で、ACCess情報とS3のバケットの地域に設定します。

text = ''' 
[default] 
aws_access_key_id = {Access id goes here }
aws_secret_access_key = {Access key goes here}
region = {AWS region goes here,  example ap-northeast-1}
''' 
#Create file 
path = "/content/drive/MyDrive/config/awscli.ini" 
with open(path, 'w') as f: 
   f.write(text) 
#Print the results 
!cat /content/drive/My Drive/config/awscli.ini

AWSCLI

次に awscli.iniのファイルは、Colabの環境に入り込みます。osというモジュールを使用して、環境の設定に入り込めます。

import os 
!export AWS_SHARED_CREDENTIALS_FILE=/content/drive/MyDrive/config/awscli.ini 
path = "/content/drive/MyDrive/config/awscli.ini" 
os.environ['AWS_SHARED_CREDENTIALS_FILE'] = path 
print(os.environ['AWS_SHARED_CREDENTIALS_FILE'])

これが終わると、AWSのS3のバケットを接続できるでしょう。確認するために「ls」というシェルスクリプトを使いましょう

!aws s3 ls s3://{your bucket name}

自分のS3のバケットを持っていない場合は、無料のデータサイエンスを使用しましょう。
データをダウンロードのために、一般的なシェルスクリプトの「cp」を使用します。S3には、保存量を減らすために、zipとtar.gzの圧縮のファイルをよく使います。Colabに環境でこのファイルをダウンロードして、解凍するときに、自分のドライバーの中で保存することが適当と思います。

!aws s3 cp s3://{bucket name}/{file name}.zip .
!aws s3 cp s3://{bucket name}/{file name}.tar.gz .

データをダウンロードした後で、ドライバーに解凍しました。zipとtar.gzの例は下記の通りです

!tar -xzvf "/content/{file_name}.tar.gz" -C "/content/drive/MyDrive/{save loc}"
!unzip "/content/{file name}.zip" -d   "/content/drive/MyDrive/{Saveloc}"

メモ

メモ1:自分のドライバーの保存先は「Colab notebook」の中の場合は、文字の間のスペースは問題を引き起こせてしまいます。解決するために、\ バックスラッシュを入ります。 ("colab\ notebook").

0
0
0

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
0
0