#アクセスするのに必要なキーを取得する
1.AWSのセキュリティ認証情報ページへ移動。
2.アクセス管理タグの「ユーザー」をクリック
3.「ユーザーを追加」を押して、ユーザー名を入力し、プログラムによるアクセスにチェック。
グループが無ければ作成し、AmazonS3FullAccessを選択する。
4.タグの追加はそのまま何も入力せずに次のステップへ
5.「ユーザー作成」で作成完了。CSVダウンロードやアクセスキーIDとシークレットアクセスキーのメモをしておく。
#boto3のインストール
pip install boto3
#CRUD
ここで利用されるaccesskey及びsecretkeyは、環境変数によって指定してください。
誰かに知られると大変なことになります。
regionは利用している地域名です。例)オハイオならus-east-2
##Create(ファイルの保存)
def create_img_s3(path, img):#画像の保存
s3 = boto3.client('s3', aws_access_key_id=accesskey, aws_secret_access_key=secretkey, region_name=region)
img.thumbnail((900, 1200), Image.ANTIALIAS)
out = BytesIO()
img.save(out, "PNG")
s3.put_object(Bucket=bucket_name, Key=path, Body=out.getvalue())
url = "https://"+bucket_name+".s3-"+region+".amazonaws.com/"+path
return url
def create_csv_s3(path, dataframe):#DataFrameからCSVに変換し、CSV保存
out2 = StringIO()
dataframe.to_csv(out2, encoding='utf_8_sig')
s3 = boto3.client('s3', aws_access_key_id=accesskey, aws_secret_access_key=secretkey, region_name=region)
s3.put_object(Bucket=bucket_name, Key=path, Body=out2.getvalue().encode("utf-8_sig"))
url = "https://" + bucket_name + ".s3-" + region + ".amazonaws.com/" + path
return url
##Read(ファイルの読み込み)
def readFile_s3(path):
url = "https://" + bucket_name + ".s3-" + region + ".amazonaws.com/" + path
return url
def readDir_s3(dirpath):#特定のフォルダにあるデータをリストで取得する
s3 = boto3.client('s3', aws_access_key_id=accesskey, aws_secret_access_key=secretkey, region_name=region)
res = s3.list_objects_v2(Bucket=bucket_name, Prefix=dirpath, Delimiter='/')
urls = []
for data in res["Contents"]:
data_url = data["Key"]
if dirpath != data_url:
url = "https://" + bucket_name + ".s3-" + region + ".amazonaws.com/" + data_url
urls.append(url)
return urls