ブラウザでユーザーが入力したデータを収集し、Amazon S3に保存します。これは私がJavascript/Jqueryでできることですか?JavascriptまたはJqueryを使用してS3にデータを保存する
答えて
はい、これは可能ですが、すでに受け入れられた回答のコメントには、セキュリティと資格情報を妥協することなく正当で有用な使用方法があります。
あなたは、ブラウザから直接S3にオブジェクトを投稿することができます:http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPOST.html
悪いアイデアは:
1)楽しい人々は、彼らがあなたのJavascriptのコードに埋め込まれたあなたのS3の資格情報を見つけたとき、あなたの銀行口座を空にして持っている可能性がどのくらいと考えてください。
2)javascriptはサーバーからロードされ、Amazonのサーバーと通信しようとします。これは、クロスドメイン通信として禁止されています。
これはサーバー上で処理したいと思うようなものです。あなたは簡単にデータを送信するAJAXのインターフェイスをホイップすることができるclient browser -> your server -> amazon
。そうすれば、あなたのS3の資格情報はあなたのサーバーに保存され、あなたのサイトを使っている誰もが無制限に送信されることはありません。
S3またはアマゾンサービスで実行されているjavascriptに情報を渡すことはありますか?ポイント2に関しては、S3からjavascriptを提供できますか? – WooHoo
Javascriptは一般にクライアント側の言語です。ネイティブのデータベース機能はないので、MySQLと話すために(たとえば)使用することはできませんでした。私はそれが役立つことができると確信していますが、私はS3についてはあまり知らないので、確かにいずれかの方法を言うことはできません。 –
私は具体的にS3について質問しているかもしれませんが、おそらく誰か他の人がチップインすることができます。乾杯 – WooHoo
クライアント側のコードを経由してS3にアクセスしようとするとさまざまな問題があります。
- 資格情報をセキュリティで保護する方法はありません。
- 多くの回答はJSONの代わりにXMLであり、JavaScriptのXML解析エンジンは重くて遅いです。
- 要求を認証するには、HMAC-SHA1のJavaScript実装が必要です。
- プロキシを経由せずにJavaScriptからクロスドメイン要求を行う際に問題があります。
オールインワンでは、現時点ではクライアントサイドJavaScriptの実現可能なソリューションはありません。サーバー側のJavaScriptに興味があるなら、Node.js用にGitHubに浮かぶS3クラスがいくつかあります。
Skylerに感謝 - 私は徐々にS3についてもう少し理解し始めています。現時点では、顧客は自分のページ内のスクリプトリファレンスをS3上のjsに追加することができます。しかし、私はボタンをクリックしてjsにデータを送ってもらいたいと思っています。私は今、私のWebサイトにWebサービスをセットアップし、jsにそれを呼び出させるのが最善であると考えています。あなたはこれとのクロスドメインの問題を見ることができますか? – WooHoo
私の答えで言及したように、リクエストごとに一意の署名付き署名を作成し、それをS3へのPOSTリクエストに直接含めることで、リクエストを認証する方法があります。サーバー側でシグネチャを生成できるため、クライアント側でHMACを実装する必要がなく、AWSの資格情報は安全なままです。 –
私はこれが古い質問だと知っていますが、同じ問題があり、解決策を見つけたと思います。 S3にはREST interfaceがあり、AWS秘密鍵を公開することなく直接データをPOSTできます。したがって、JavascriptまたはjQueryを使用してS3バケットエンドポイントにAJAX POSTリクエストを作成できます。リクエスト内でアクセスポリシーを指定することもできます。これにより、特定のバケットおよび特定のディレクトリのみへのアップロードアクセスが制限されます。
Amazonは、リクエストで提供されたHMAC署名を使用して、リクエストの真正性を検証します。署名は、あなたとAmazonだけが知っているリクエストとAWS秘密鍵の詳細を使用して作成されるため、署名が有効な人がいなければ不正なリクエストを行うことはできません。
おかげさまで、ありがとうございました。私は、S3からjavascriptウィジェットを提供し、次にeasyxdmを使用して、情報を格納するためのWebサーバーへのクロスドメイン投稿を作成しました。 – WooHoo
はたぶんノードを見ています。JS、およびによりAWS-SDKパッケージを試してみてください。私はS3にファイルをアップロードする方法について見つけブログやドキュメントがあります
npm install aws-sdk
:
- 1. Visual Studioを使用してS3にデータを保存します。
- 2. javascriptとjqueryを使用して状態を保存する
- 3. S3を使用してアプリケーション構成ファイルを保存する
- 4. コードビハインド(ポストバック)とWebサービスを使用したJquery(データ保存用)
- 5. javascriptを使用してブラウザにクッキーを保存するには
- 6. jsonを使用してsharedpreferencesにデータを保存します
- 7. Javascriptファイルシステムにデータを保存する(ユーザープロンプトを使用)
- 8. jQueryまたはPHPを使用して3分ごとにデータを非同期で保存する方法
- 9. s3に保存された画像をnode.jsを使って保存しますか?
- 10. 共有設定を使用してデータを保存します。
- 11. sparkR - crashを使用してHadoopにデータを保存する
- 12. WPFを使用してデータベースにデータを保存する
- 13. SharedPreferencesを使用してAndroidにデータを保存する方法
- 14. カメラを使用して背景にデータを保存する
- 15. javascriptを使用して動的HTMLテーブルからデータを保存する
- 16. PHPまたはJavaScriptを使用して[名前を付けて保存]ダイアログ
- 17. jqueryを使用してjavascriptオブジェクトを保存し、データベースからIDを渡す
- 18. Javascript/AngularJSデータをローカルに保存する
- 19. iOS AWS SDKを使用してAmazon S3に保存された画像を取得して表示する
- 20. GWT + GAE + S3パスを使用して大きなファイルを保存する
- 21. Flashを使用したJavaScriptによるファイル保存ダイアログのオープン
- 22. JavascriptまたはPHPを使用してウェブページから画像を保存
- 23. Javascript/JQueryファイルに値を保存する
- 24. jQuery data():jQueryセレクタを使用して保存されたデータを取得できません
- 25. HTML5ローカルストーラーを使用してJavaScriptの配列を保存する
- 26. JavaScriptを使用してHTML5の履歴を保存する
- 27. Javascriptを使用してポップアップデータを保存する
- 28. LocalStorageを使用してデータを保存する
- 29. ZIPアーカイブを使用してNSDocumentデータを保存する
- 30. ローカルストレージを使用してデータを保存する
が答えてくれてありがとう私Amazon Webサービスを使ってデータを保存するルートを辿るつもりです。今、それは私の最高の賭けに見えます。歓声 – WooHoo