web-dev-qa-db-ja.com

サードパーティユーザーがAWSS3fsにファイルをアップロードできるようにする

ここでかなり難しい問題があります。サイトのユーザーが非常に大きなファイルを自分のアカウントにアップロードできるようにする必要があり、これらのファイルをAWSS3ファイルシステムに保存したいと考えています。これらを受信して​​S3fsに保存するWebサービスを作成するだけでは不十分です。アップロード中にあらゆる種類の問題が発生する可能性があり、高度なアップローダークライアントが必要だからです。 AmazonがS3にファイルをアップロードするために提供している種類のクライアントですが、もちろん、ユーザーに直接アクセスを許可することはできません。これについてのアイデアを真剣に感謝します!

ありがとうございました

13

ベストプラクティスは、クライアントアプリケーションが独自のWebインフラストラクチャを経由せずに、S3に直接アップロードできるようにすることです。これにより、S3の超並列性が活用され、Webインフラストラクチャの負荷が軽減されます。インフラストラクチャをオフロードすると、同じ量のトラフィックを処理するために使用するインスタンスまたはインスタンスを減らすことができます。したがって、インフラストラクチャのコストが低くなります。

各ユーザーのアクセスをS3上の独自の「ディレクトリ」(別名キープレフィックス)に制限するS3IAMポリシーを作成する必要があります。

このブログ投稿をご覧ください: http://blogs.aws.Amazon.com/security/post/Tx1P2T3LFXXCNB5/Writing-IAM-policies-Grant-access-to-user-specific-folders-in- an-Amazon-S3-bucke

アプリケーションがWebアプリの場合は、顧客のブラウザーをS3に直接アップロードすることもできます。これを安全に実装する方法については、 http://docs.aws.Amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html をご覧ください。

あなたの質問についての最後の注意:S3はファイルシステムではなく、S3はオブジェクトストアです。オブジェクトストレージとファイルシステムの違いについて詳しくは、 http://www.infoworld.com/article/2614094/data-center/what-is-object-storage-.html をご覧ください。

17

まず、AWSアカウントでユーザーを作成する必要があります。次に、s3などのAWSサービスへのアクセスを許可して、これらのユーザーにロールを割り当てます。次に、これらのロールのIDアクセスを作成し、リラックスします。残りはAWSが行います。 CloudfrontAPIについて気にする必要はありません。ここで概説されているように必要なことを行うと、問題は解決されます。

0
Ose Osamudiamen