タグ付けされた質問 「amazon-s3」

Amazon S3(シンプルストレージサービス)は、Amazon Web Servicesのオンラインオブジェクトストレージサービスです。質問はプログラミングに関するものでなければなりません。一般的なS3サポート、機能、構成などに関する質問はオフトピックです。

4
AWS S3、CP、または同期からフォルダをダウンロードしますか?
S3上のディレクトリのすべてのコンテンツをローカルPCにダウンロードする場合、どのコマンドを使用する必要がありますか? 任意の助けをいただければ幸いです。 例えば、 「このフォルダ」のすべてのコンテンツをデスクトップにダウンロードする場合、次のようになりますか? aws s3 sync s3://"myBucket"/"this folder" C:\\Users\Desktop

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メソッドとは何ですか?

7
AmazonS3ファイルのダウンロード名を変更する
キー名としてGUIDを使用してS3にファイルを保存しています。 S3 RESTAPIに従ってダウンロードするために事前に署名されたURLを使用しています 元のファイル名を自分のデータベースに保存します。ユーザーがクリックしてWebアプリケーションからファイルをダウンロードすると、元のファイル名を返したいのですが、現在取得できるのはGUIDだけです。どうすればこれを達成できますか? 私のWebアプリはセールスフォースにあるため、response.redirectsを実行するための制御があまりありません。ファイルをWebサーバーにダウンロードしてから、ガバナーの制限により名前を変更します。 使用できるHTMLリダイレクト、メタリフレッシュ、Javascriptはありますか?S3のダウンロードファイル名を変更する方法はありますか(私が考えることができる唯一のことは、オブジェクトを新しい名前にコピーし、ダウンロードしてから削除することです)。 多くのユーザーがいるため、ユーザーごとにバケットを作成することは避けたいと思います。それでも、各バケットに含まれる各ファイルに一意の名前が付けられる保証はありません。 他の解決策はありますか?

4
Node.jsを介してbase64でエンコードされた画像をAmazon S3にアップロードする
昨日、深夜のコーディングセッションを行い、小さなnode.js / JS(実際にはCoffeeScriptですが、CoffeeScriptは単なるJavaScriptなので、JSと言いましょう)アプリを作成しました。 目標は何ですか: クライアントがキャンバスdatauri(png)をサーバーに送信(socket.io経由) サーバーが画像をAmazon S3にアップロードします ステップ1が完了しました。 サーバーに文字列が追加されました data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACt... 私の質問は、このデータをAmazon S3に「ストリーミング」/アップロードし、そこで実際のイメージを作成するための次のステップは何ですか? knox https://github.com/LearnBoost/knoxはS3に何かをPUTするための素晴らしいライブラリのようですが、欠けているのは、base64-encoded-image-stringと実際のアップロードアクションの間の接着剤ですか? どんなアイデア、アドバイス、フィードバックも歓迎します。

8
Cloudfrontで静的にホストされているウェブサイトのサブディレクトリのデフォルトルートオブジェクトをどのように設定しますか?
Cloudfrontで静的にホストされているウェブサイトのサブディレクトリにデフォルトのルートオブジェクトをどのように設定しますか?具体的にはwww.example.com/subdir/index.html、ユーザーがを要求するたびにサービスを提供したいと考えていますwww.example.com/subdir。これは、S3バケットに保持されている静的なWebサイトを配信するためのものであることに注意してください。さらに、S3バケットへのアクセスをCloudfrontのみに制限するために、オリジンアクセスIDを使用したいと思います。 現在、Cloudfrontの動作はS3およびAmazonの状態とは異なっていることを認識しています: CloudFrontデフォルトルートオブジェクトの動作は、Amazon S3インデックスドキュメントの動作とは異なります。Amazon S3バケットをウェブサイトとして設定し、インデックスドキュメントを指定すると、ユーザーがバケット内のサブディレクトリをリクエストした場合でも、Amazon S3はインデックスドキュメントを返します。(インデックスドキュメントのコピーは、すべてのサブディレクトリに表示される必要があります。)Amazon S3バケットをウェブサイトとして設定する方法とインデックスドキュメントの詳細については、Amazon Simple Storage Service開発者ガイドの「Amazon S3でのウェブサイトのホスティング」の章を参照してください。 そのため、Cloudfrontではデフォルトのルートオブジェクトを指定できますが、これはに対してのみ機能しwww.example.com、に対しては機能しませんwww.example.com/subdir。この問題を回避するために、S3によって提供されたWebサイトのエンドポイントを指すようにオリジンドメイン名を変更できます。これはうまく機能し、ルートオブジェクトを均一に指定できます。残念ながら、これはオリジンアクセスIDと互換性がないようです。具体的には、上記のリンクは次のように述べています。 編集モードに変更します。 Webディストリビューション– [Origins]タブをクリックし、編集するオリジンをクリックして、[Edit]をクリックします。オリジンタイプがS3オリジンであるオリジンに対してのみ、オリジンアクセスIDを作成できます。 基本的に、正しいデフォルトルートオブジェクトを設定するために、ウェブサイトバケット自体ではなく、S3ウェブサイトエンドポイントを使用します。これは、発信元アクセスIDの使用と互換性がありません。したがって、私の質問はどちらかに要約されます Cloudfrontで静的にホストされているウェブサイトのすべてのサブディレクトリにデフォルトのルートオブジェクトを指定することは可能ですか? オリジンがS3バケットではなくS3ウェブサイトエンドポイントであるCloudfrontから提供されるコンテンツのオリジンアクセスIDをセットアップすることは可能ですか?

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: …

30
AWS S3-「計算したリクエスト署名が署名と一致しません」エラーを修正する方法は?
私は2日以上ウェブで検索し、おそらくオンラインで文書化されたシナリオと回避策のほとんどを調べましたが、今のところ何もうまくいきませんでした。 私は上だAWS SDK PHP V2.8.7は、PHP 5.3で実行しているため。 次のコードでS3バケットに接続しようとしています: // Create a `Aws` object using a configuration file $aws = Aws::factory('config.php'); // Get the client from the service locator by namespace $s3Client = $aws->get('s3'); $bucket = "xxx"; $keyname = "xxx"; try { $result = $s3Client->putObject(array( 'Bucket' => $bucket, 'Key' => $keyname, 'Body' …

11
ストリームをs3.upload()にパイプします
私は現在、s3-upload-streamと呼ばれるnode.jsプラグインを使用して、非常に大きなファイルをAmazonS3にストリーミングしています。マルチパートAPIを使用し、ほとんどの場合、非常にうまく機能します。 ただし、このモジュールはその年齢を示しており、私はすでにモジュールに変更を加える必要がありました(作成者も非推奨にしています)。今日、私はAmazonで別の問題に遭遇しました。著者の推奨を受け入れ、公式のaws-sdkを使用してアップロードを実行したいと思います。 だが。 公式SDKはへのパイプをサポートしていないようですs3.upload()。s3.uploadの性質は、読み取り可能なストリームを引数としてS3コンストラクターに渡す必要があることです。 さまざまなファイル処理を行う約120以上のユーザーコードモジュールがあり、それらは出力の最終的な宛先に依存しません。エンジンはそれらにパイプ可能な書き込み可能な出力ストリームを渡し、それらはそれにパイプします。すべてのモジュールにコードを追加せずに、AWS.S3オブジェクトを渡して呼び出すように依頼することはできませんupload()。s3-upload-stream配管に対応しているので使用しました。 aws-sdkをs3.upload()ストリームをパイプできるものにする方法はありますか?

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) しかし、私は希望するレベルのフォルダを取得していません。 これを解決する方法はありますか?

2
S3にデータを保存し、rails API / iOSクライアントを使用して安全な方法でユーザーアクセスを許可する方法
RailsとAPIを書くのは初めてです。S3ストレージソリューションについてサポートが必要です。これが私の問題です。 ユーザーがiOS上のFacebook APIでログインするiOSアプリのAPIを書いています。サーバーは、FacebookがiOSユーザーに発行するトークンに対してユーザーを検証し、一時的なセッショントークンを発行します。この時点から、ユーザーはS3に保存されているコンテンツをダウンロードする必要があります。このコンテンツは、ユーザーとその友達のサブセットにのみ属します。このユーザーは、S3にさらに多くのコンテンツを追加できます。このコンテンツは、同じ束の人々がアクセスできます。ファイルをFacebookグループに添付するのに似ていると思います... ユーザーがS3とやり取りする方法は2つあります。サーバーに任せるか、サーバーに一時的なS3トークンを発行させ(ここでの可能性は不明)、ユーザーはコンテンツURLを直接S3に到達させることができます。私はアプローチについて話しているこの質問を見つけました、しかしそれは本当に(2年前に)日付が付けられました:iPhoneアプリとS3からの写真のアップロードに関するアーキテクチャとデザインの質問 だから質問: 一時的なトークンが発行されたときに、ユーザーがS3の一部のコンテンツのみにアクセスすることを制限する方法はありますか?これどうやってするの?10万人以上のユーザーがいるとします。 iOSデバイスにこのコンテンツを直接引き出しさせるのは良い考えですか? または、サーバーにすべてのコンテンツの受け渡しを制御させる必要があります(これにより、もちろんセキュリティが解決されます)?これは、接続されているユーザーにコンテンツを渡す前に、すべてのコンテンツをサーバーにダウンロードする必要があることを意味しますか? レールを知っている場合...ペーパークリップとaws-sdkジェムを使用してこのような設定を実現できますか? 複数の質問についてお詫び申し上げます。問題についての洞察はありがたいです。ありがとう:)

7
高速なs3バケット複製
私はs3cmdよりもバケットを複製するためのより良いコマンドラインツールを見つけようとしています。 s3cmd各ファイルをダウンロードしてアップロードしなくてもバケットを複製できます。s3cmdを使用してバケットを複製するために通常実行するコマンドは次のとおりです。 s3cmd cp -r --acl-public s3://bucket1 s3://bucket2 これは機能しますが、APIを介して各ファイルを1つずつコピーするため、非常に低速です。場合s3cmd並列モードで実行することができ、私はとても幸せに思います。 より高速なバケットを複製するためにコマンドラインツールまたはコードとして使用できる他のオプションはありますs3cmdか? 編集:s3cmd-modificationがまさに私が探しているもののようです。残念ながらうまくいきません。他のオプションはありますか?

8
Amazon S3がファイルをアップロードしてURLを取得
txt / pdf / pngファイルを単一のアクションでAmazon S3にアップロードし、アップロードされたファイルのURLを応答として取得することは可能ですか?もしそうなら、AWS Java SDKは、Java struts2 Webアプリケーションに追加する必要がある適切なライブラリですか? これに対する解決策を私に提案してください。

5
django-storagesとAmazon S3を使用してDjangoプロジェクトをセットアップする方法はありますが、静的ファイルとメディアファイル用に異なるフォルダーを使用していますか?
アプリの静的ファイル(STATIC_ROOT)とユーザーがアップロードしたファイル(MEDIA_ROOT)を保存するためにサーバーファイルシステムを使用していたDjangoプロジェクトを構成しています。 これで、AmazonのS3ですべてのコンテンツをホストする必要があるため、このためのバケットを作成しました。ストレージバックエンドを使用django-storagesして、boto収集した統計をS3バケットにアップロードできました。 MEDIA_ROOT = '/media/' STATIC_ROOT = '/static/' DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' AWS_ACCESS_KEY_ID = 'KEY_ID...' AWS_SECRET_ACCESS_KEY = 'ACCESS_KEY...' AWS_STORAGE_BUCKET_NAME = 'bucket-name' STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 次に、問題が発生しました:MEDIA_ROOTとSTATIC_ROOTはバケット内で使用されていないため、バケットのルートには静的ファイルとユーザーがアップロードしたパスの両方が含まれています。 だから私は設定できます: S3_URL = 'http://s3.amazonaws.com/%s' % AWS_STORAGE_BUCKET_NAME STATIC_URL = S3_URL + STATIC_ROOT MEDIA_URL = 'S3_URL + MEDIA_ROOT テンプレートでこれらの設定を使用しますが、を使用してS3に保存する場合、静的/メディアファイルの区別はありませんdjango-storages。 これはどのように行うことができますか? ありがとう!

4
Amazon AWSの請求制限を設定する方法はありますか?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 5年前に閉鎖。 この質問を改善する Amazon S3の上にアプリを構築しています。S3を設定された予算で実行し続けるにはどうすればよいですか?予期しないトラフィックがAWSアカウントに過剰に課金されないようにしたいとします。利用できません。

9
S3で10,000ファイルを公開する方法
バケット内に10,000ファイルのフォルダがあります。それらをアップロードしてすぐに公開する方法はないようです。だから私はそれらすべてをアップロードしました、それらは非公開であり、私はそれらをすべて公開する必要があります。 私はawsコンソールを試してみましたが、エラーが発生します(ファイル数の少ないフォルダでは正常に機能します)。 同じことで、FirefoxでS3を整理してみました。 これらすべてを公開するために実行できるソフトウェアまたはスクリプトはありますか?

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