タグ付けされた質問 「boto3」

Boto 3-Python用のアマゾンウェブサービス(AWS)SDK

2
リソース、クライアント、セッションのboto3の違いは?
Ubuntu 16.04 LTSでPython 2.7.12を使用しています。次のリンクからboto3の使用方法を学んでいます:https ://boto3.readthedocs.io/en/latest/guide/quickstart.html#using-boto-3 。私の疑問は、リソース、クライアント、またはセッション、およびそれぞれの機能をいつ使用するかです。
215 python  boto3 

9
boto3でエラーを処理する方法
boto3で適切なエラー処理を行う方法を理解しようとしています。 IAMユーザーを作成しようとしています: def create_user(username, iam_conn): try: user = iam_conn.create_user(UserName=username) return user except Exception as e: return e create_userの呼び出しが成功すると、API呼び出しのhttpステータスコードと新しく作成されたユーザーのデータを含むきちんとしたオブジェクトが取得されます。 例: {'ResponseMetadata': {'HTTPStatusCode': 200, 'RequestId': 'omitted' }, u'User': {u'Arn': 'arn:aws:iam::omitted:user/omitted', u'CreateDate': datetime.datetime(2015, 10, 11, 17, 13, 5, 882000, tzinfo=tzutc()), u'Path': '/', u'UserId': 'omitted', u'UserName': 'omitted' } } これはうまくいきます。しかし、これが失敗した場合(ユーザーが既に存在する場合など)、botocore.exceptions.ClientError型のオブジェクトを取得し、テキストのみで何が問題かを通知します。 例:ClientError( 'CreateUser操作の呼び出し時にエラーが発生しました(EntityAlreadyExists):省略された名前のユーザーはすでに存在しています。'、) この(AFAIK)では、結果のhttpステータスコードをオンにできないため、エラー処理が非常に困難になります(IAMのAWS APIドキュメントによると、ユーザーの409はすでに存在しています)。これは私が何か間違った方法をしているに違いないと思います。最適な方法はboto3が例外をスローしないことですが、Jutは常にAPI呼び出しがどのように行われたかを反映するオブジェクトを返します。 …

13
boto3を使用したバケットの内容の一覧表示
S3でバケットの内容を確認するにはどうすればよいboto3ですか?(つまり、"ls") 以下を実行します。 import boto3 s3 = boto3.resource('s3') my_bucket = s3.Bucket('some/path/') 戻り値: s3.Bucket(name='some/path/') 内容はどのように確認できますか?
198 python  amazon-s3  boto  boto3 

23
boto3を使用して、s3のバケットにキーが存在するかどうかを確認します
boto3にキーが存在するかどうかを知りたい。バケットの内容をループして、一致する場合はキーを確認できます。 しかし、それは長くなり過ぎるようです。Boto3の公式ドキュメントには、これを行う方法が明記されています。 明らかなことを見逃しているかもしれません。誰か私にこれを達成する方法を教えてもらえますか?
165 python  amazon-s3  boto3 


6
boto3クライアントNoRegionError:領域エラーを指定する必要があるのはときどきのみ
私はboto3クライアントを持っています: boto3.client('kms') しかし、それは新しいマシンで起こり、動的に開閉します。 if endpoint is None: if region_name is None: # Raise a more specific error message that will give # better guidance to the user what needs to happen. raise NoRegionError() なぜこうなった?そして、なぜ時間の一部だけですか?
147 python  linux  boto3  aws-kms 

1
AWS botoとboto3の違いは何ですか[完了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、Stack Overflowのトピックと。 3年前休業。 この質問を改善する 私はPythonを使用してAWSを始めたばかりで、boto APIを学習しようとしていますが、Pythonには2つのメジャーバージョン/パッケージがあることに気付きました。それはbotoとboto3です。 AWS botoとboto3ライブラリの違いは何ですか?

6
boto3を使用してS3オブジェクトをファイルに保存する方法
AWSの新しいboto3クライアントで「hello world」を実行しようとしています。 私の使用例はかなり単純です。S3からオブジェクトを取得してファイルに保存します。 boto 2.XIでは、次のようにします。 import boto key = boto.connect_s3().get_bucket('foo').get_key('foo') key.get_contents_to_filename('/tmp/foo') ボト3。同じことをするためのクリーンな方法が見つからないため、「Streaming」オブジェクトを手動で反復しています。 import boto3 key = boto3.resource('s3').Object('fooo', 'docker/my-image.tar.gz').get() with open('/tmp/my-image.tar.gz', 'w') as f: chunk = key['Body'].read(1024*8) while chunk: f.write(chunk) chunk = key['Body'].read(1024*8) または import boto3 key = boto3.resource('s3').Object('fooo', 'docker/my-image.tar.gz').get() with open('/tmp/my-image.tar.gz', 'w') as f: for chunk in iter(lambda: key['Body'].read(4096), b''): …

4
boto3を使用してCloudFrontに接続するときにAWSプロファイルを選択する方法
Boto 3 Pythonライブラリを使用していて、AWS CloudFrontに接続したいと思います。正しいAWSプロファイル(AWS Credentials)を指定する必要がありますが、公式ドキュメントを見ると、指定する方法がありません。 私はコードを使用してクライアントを初期化しています: client = boto3.client('cloudfront') ただし、これにより、デフォルトのプロファイルを使用して接続されます。使用するプロファイルを指定できるメソッドが見つかりませんでした。

10
データフレームをcsvに直接s3 Pythonに保存
新しいCSVファイルにアップロードしたいpandas DataFrameがあります。問題は、s3に転送する前にファイルをローカルに保存したくないことです。データフレームを直接s3に書き込むためのto_csvのような方法はありますか?私はboto3を使用しています。 ここに私がこれまでに持っているものがあります: import boto3 s3 = boto3.client('s3', aws_access_key_id='key', aws_secret_access_key='secret_key') read_file = s3.get_object(Bucket, Key) df = pd.read_csv(read_file['Body']) # Make alterations to DataFrame # Then export DataFrame to CSV through direct transfer to s3

11
Boto3エラー:botocore.exceptions.NoCredentialsError:資格情報が見つかりません
次のコードを実行すると、常にこのエラーが発生します。 s3 = boto3.resource('s3') bucket_name = "python-sdk-sample-%s" % uuid.uuid4() print("Creating new bucket with name:", bucket_name) s3.create_bucket(Bucket=bucket_name) 資格情報ファイルを保存しました C:\Users\myname\.aws\credentials、そこからBotoが私の資格情報を読み取る必要があります。 私の設定は間違っていますか? これはからの出力ですboto3.set_stream_logger('botocore', level='DEBUG')。 2015-10-24 14:22:28,761 botocore.credentials [DEBUG] Skipping environment variable credential check because profile name was explicitly set. 2015-10-24 14:22:28,761 botocore.credentials [DEBUG] Looking for credentials via: env 2015-10-24 14:22:28,773 botocore.credentials [DEBUG] Looking …
112 boto  boto3 

5
boto3 S3に接続するときに資格情報を指定するにはどうすればよいですか?
botoでは、次のようにS3に接続するときに資格情報を指定していました。 import boto from boto.s3.connection import Key, S3Connection S3 = S3Connection( settings.AWS_SERVER_PUBLIC_KEY, settings.AWS_SERVER_SECRET_KEY ) 次に、S3を使用して操作を実行できます(私の場合はバケットからオブジェクトを削除します)。 boto3で私が見つけたすべての例はそのようなものです: import boto3 S3 = boto3.resource( 's3' ) S3.Object( bucket_name, key_name ).delete() 資格情報を指定できなかったため、すべての試行がInvalidAccessKeyIdエラーで失敗します。 boto3で資格情報を指定するにはどうすればよいですか?

7
boto3を使用してファイルまたはデータをS3オブジェクトに書き込む方法
boto 2では、次のメソッドを使用してS3オブジェクトに書き込むことができます。 Key.set_contents_from_string() Key.set_contents_from_file() Key.set_contents_from_filename() Key.set_contents_from_stream() boto 3に相当するものはありますか?S3に格納されているオブジェクトにデータを保存するboto3メソッドとは何ですか?

9
ディスクに書き込まずにAWSS3のテキストファイルをパンダにインポートする方法
タブ区切りのテーブルであるテキストファイルをS3に保存しています。パンダにロードしたいのですが、herokuサーバーで実行しているため、最初に保存できません。これが私がこれまでに持っているものです。 import io import boto3 import os import pandas as pd os.environ["AWS_ACCESS_KEY_ID"] = "xxxxxxxx" os.environ["AWS_SECRET_ACCESS_KEY"] = "xxxxxxxx" s3_client = boto3.client('s3') response = s3_client.get_object(Bucket="my_bucket",Key="filename.txt") file = response["Body"] pd.read_csv(file, header=14, delimiter="\t", low_memory=False) エラーは OSError: Expected file path name or file-like object, got <class 'bytes'> type 応答本文をパンダが受け入れる形式に変換するにはどうすればよいですか? pd.read_csv(io.StringIO(file), header=14, delimiter="\t", low_memory=False) returns TypeError: …

14
boto3からS3バケット内のサブフォルダー名を取得する
boto3を使用して、AWSS3バケットにアクセスできます。 s3 = boto3.resource('s3') bucket = s3.Bucket('my-bucket-name') 現在、バケットにはフォルダが含まれています。フォルダfirst-level自体には、たとえばタイムスタンプで名前が付けられたいくつかのサブフォルダが含まれています1456753904534。私が行っている別の仕事のためにこれらのサブフォルダーの名前を知る必要があり、boto3にそれらを取得させることができるかどうか疑問に思います。 だから私は試しました: objs = bucket.meta.client.list_objects(Bucket='my-bucket-name') これは辞書を提供し、そのキー 'Contents'は、第2レベルのタイムスタンプディレクトリではなく、すべての第3レベルのファイルを提供します。実際、次のようなものを含むリストを取得します。 {u'ETag ':' "etag" '、u'Key':first-level / 1456753904534 / part-00014 '、u' LastModified ':datetime.datetime(2016、2、29、13、52、24、tzinfo = tzutc())、 u'Owner ':{u'DisplayName': 'owner'、u'ID ':' id '}、 u'Size':size、u'StorageClass ':' storageclass '} part-00014ディレクトリの名前だけを取得したいのですが、この場合は特定のファイルが取得されていることがわかります。原則として、すべてのパスからディレクトリ名を取り除くことはできますが、3番目のレベルですべてを取得して2番目のレベルを取得するのは、醜くて費用がかかります。 私もここで報告された何かを試しました: for o in bucket.objects.filter(Delimiter='/'): print(o.key) しかし、私は希望するレベルのフォルダを取得していません。 これを解決する方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.