📖 AWS記事まとめ
「 AWS S3 が ログファイル置くのにいいと聞いたんで調べるぜ」
「 バケットの中に オブジェクトが入っているらしいぜ。 バケットは100個まで作れるらしい。
オブジェクトというのは ファイルのことのようだぜ」
「 オブジェクト名 というのは 特に付けたいものがなければ ファイル名にしとけばいいらしいわよ」
「 オブジェクト には JSONみたいなキー、バリュー ペアのデータを付けることができるらしいわよ」
📖 Listing contents of a bucket with boto3
「 👆 ターミナルに接続して最初にやりたいコマンドは ls
だろ。
その オブジェクト とやらを一覧する方法を知っとこうぜ」
「 で、わたしが AWS S3 を使うには どういう行動を取ったらいいんだぜ?
天井に向かって 口をポカーンと開けて 念仏を唱えると AWS S3 の方から迎えがくるのかだぜ?」
「 使います、という意志が どこかへ伝わる必要があるんじゃないの?」
「 じゃあ 試しに アップロード ボタンを押して ファイルをアップロードしてみなさいよ」
「 👆 muzudho-h4b
というのがバケット名かだぜ。 なんだぜこの奇妙なバケット名は?」
「 👆 ドラッグ&ドロップで テキストファイルを投げ込むぜ」
「 じゃあ Pythonスクリプトで同じことをやるには どうやるんだぜ?
特に ユーザー認証の部分がだぜ」
「 👆 ユーザー認証的なコードを書いている風には見えないぜ」
「 パスワードを Git Hub にコミットしちゃう人がいるのよ。
スクリプトとか、プロジェクトの中に ユーザー認証コードを書かないのが セキュリティ対策の1つなのよ」
「 ローカルPCに AWSクレデンシャル のファイルを置いてるのを勝手に探して見に言ってくれるのかだぜ? 不思議だな」
「 ユーザーディレクトリの下の .aws
ディレクトリーが定位置なのかだぜ?」
upload_file.py
:
import argparse
import logging
import boto3
from botocore.exceptions import ClientError
import os
def upload_file(file_name, bucket, object_name=None):
"""Upload a file to an S3 bucket
:param file_name: File to upload
:param bucket: Bucket to upload to
:param object_name: S3 object name. If not specified then file_name is used
:return: True if file was uploaded, else False
"""
# If S3 object_name was not specified, use file_name
if object_name is None:
object_name = os.path.basename(file_name)
# Upload the file
s3_client = boto3.client('s3')
try:
_response = s3_client.upload_file(file_name, bucket, object_name)
except ClientError as e:
logging.error(e)
return False
return True
# Test
# python.exe -m upload_file --target hello-world.txt --bucket muzudho-h4b
# ---------------
# This file to upload
# -----------
# Bucket name
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='AWS S3 Practice.')
parser.add_argument('--target', help='This file to upload')
parser.add_argument('--bucket', help='Bucket name')
args = parser.parse_args()
upload_file(args.target, args.bucket)
pass
python.exe -m upload_file --target hello-world.txt --bucket muzudho-h4b
「 👆 アップロードできてるな。 これ、中身は確認できるのかだぜ?」
「 なんか 開く
を押してもファイルがダウンロードされてくるぜ。 ダウンロードするしかなくない?」
「 ローカルPCに 長々と ファイル書き込みをする ログの取り方を 変えなくてはいけないのかだぜ?」
「 S3 ができるの、ファイルを置くことと ファイルを取り出すことだけだろ」
「 例えば 将棋の対局1個分で ログファイル1個できる、とかかしら」
「 ログって もっと 広範囲で 細かなところにも入り込むようなものだろ。
対局1個分 とかで 区切れるものなのかだぜ?」
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!