問題タブ [gcloud-node]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gcloud-node - gcloud-node は /tmp にファイルを残しますか?
gcloud-node を使用してファイルを GC Storage にアップロードしていますが、 /tmp ディレクトリにこれらの残骸が多数あることに気付きました。
/tmp/3a1a48fa-3d83-4996-8e88-32bc01c36e86
/tmp/3a1a48fa-3d83-4996-8e88-32bc01c36e86/.config /tmp/3a1a48fa-3d83-4996-8e88-32bc01c36e86/.config/configa3-fa183
ストア
/tmp/3a1a48fa/ -4996-8e88-32bc01c36e86/.config/configstore/gcs-resumable-upload.json
...
これは正常ですか?大きなアップロードファイル専用ですか?これらのファイルがどのディレクトリに移動するかを構成する方法はありますか (作成する必要がある場合)。
ありがとう!
email - ノードバックエンドでGmailの新しいメールプッシュ通知を取得するにはどうすればよいですか?
新しいメールが GMAIL に表示されたときにデータを処理する必要があるノード アプリケーションを開発しています。INBOX でのすべてのアクションに対して pub/sub メッセージングをセットアップする方法は知っていますが、新しいメールに関する通知のみを受け取る可能性があるかどうか疑問に思っています。
新しいメールがあるかどうか、ユーザーがメールを削除したかどうか、またはその他の変更を行ったかどうかを確認する追加のリクエストを行いたくありません。
どんな情報でも大歓迎です。
node.js - gcloud 経由で Google Cloud Platform ファイルからノード サーバーへ
アプリケーションの一部が一意の名前 (拡張子なし) の小さなテキスト ファイルを追加する Google Cloud Platform にバケットがあります。
2 番目のアプリは、テンプレートに挿入するために個々のテキスト ファイルを (一度に 1 つだけ) 取得する必要があります。
これに対する正しい API 呼び出しが見つかりません。
構成は必要に応じて次のとおりです。
バケットへの保存はうまく機能します。
以下は論理的に見えますが、コールバックで使用する実際のファイルではなく、メタデータのみを返します。
実際には公式ドキュメントに記載されていないため、これが機能しないことはおそらく驚くことではありませんが、要求したドキュメントを返す単純な asnyc 関数でもありません。
node.js - node.jsを使用してGoogleクラウドストレージから複数のオブジェクトを削除します
Google クラウド ストレージから複数のオブジェクトを削除する必要があります。一度に 1 つのオブジェクトを削除しました。
これは私のコードです:
しかし、複数のオブジェクトを同時に削除する必要があります。それは可能ですか?
node.js - Google データストアのノードのページ付け
Google Datastore でページネーションを行うのに問題があります。制限なしで数百の結果を持つクエリがあります。ユーザーがさらに必要な場合は、次の 5 を取得します。
ドキュメントに従って、クエリを作成します。
次に、次のクエリを実行して、最初の 5 つの結果を取得します。
これはコールバック関数です:
問題はres =、コンソールに結果が表示されずに無限に印刷されることです。何が間違っているのかわかりません。私がしたいことはです。
私はこのドキュメントを見てきました: http://googlecloudplatform.github.io/gcloud-node/#/docs/v0.30.2/datastore/query?method=autoPaginate。
この単純なページネーションをどのように達成できますか?
node.js - Google クラウド ストレージへのバッファのアップロード
(フォームからアップロードされたファイルの) バッファを Google Cloud ストレージに保存しようとしていますが、Google Node SDK では、指定されたパス (読み取り/書き込みストリーム) を持つファイルのみをアップロードできるようです。
これは私が AWS (S3) に使用したものです - Google ノード SDK で他に似ているものはありますか?:
これまでに見つけた唯一の方法は、バッファーをディスクに書き込み、SDK を使用してファイルをアップロードし (新しいファイルへのパスを指定)、アップロードが成功したらファイルを削除することです。プロセス全体が大幅に遅くなり、Google ストレージを使用することは不可能と思われます。バッファをアップロードする回避策/方法はありますか?
google-app-engine - モデル データストア アプリケーション
以下の要件を満たす効率的なモデルを作成する方法を探しています。gcloud-node を使用してみましたが、読み取りの一貫性や参照などに制限があることに気付きました。これは nodejs で記述したいと思いますが、モデルが改善される限り、Java または Python で記述してもかまいません。私は、7 月 1 日に導入される新しい料金モデルを中心に構築しています。
私のアプリケーションはクローズド メール システムで構成されています。本質的に何が起こるかは、ユーザーがサイトに登録することです。これらのユーザーは友達を作ることができます。その後、お互いにメールを送信できます。
アプリのコンポーネント:
ユーザー - 無制限の数のユーザーが参加できます。
友達 - ユーザーは、200 人の確認済みの友達と 100 人の保留中の友達リクエストを持つことができます。フレンドリストが取得されると、フレンドの名前が表示されます。(クライアント側でメールを作成するために使用できるように、友人の ID も受け取る必要があります)。
電子メール - ユーザーは、友人に電子メールを送信したり、友人から電子メールを受信したりできます。ユーザーは、送信したすべてのメールを個別に表示し (sentbox)、受信したすべてのメールを個別に表示できます (受信トレイ)。また、自分と友人の間で送信されたメールを最新順に表示することもできます。電子メールには、送信者と受信者の名前が表示されます。メールを読んだら、既読にする必要があります。
私のモデルは次のようになりますが、ご覧のとおり、非効率的です。
データストアの種類:
申請の手順:
登録- この電子メールを持つユーザーが存在するかどうかを確認する操作を取得します。キーを挿入しない場合。
ログイン- 電子メールに基づいてユーザーを取得する操作を取得します。存在する場合は、エンティティから hash_password を取得し、ユーザーの入力と比較します。
友達リクエストを送信- 友達データは関係ごとに 2 回書き込まれます。次に、friend1 のインデックスと status のインデックスを使用して、ユーザーのすべてのフレンドをクエリし、「保留中」のフレンドのみをフィルター処理します。次に、これらの友達を数えて、X を超えているかどうかを確認します。これを他のユーザーに対しても行います。両方とも保留制限を超えていない場合は、友達リクエストを挿入します。これはトランザクションで実行する必要があります。
友達リクエストを受け入れる- 友達データは関係ごとに 2 回書き込まれます。次に、friend1 のインデックスと status のインデックスを使用して、ユーザーのすべてのフレンドをクエリし、保留中のフレンドのみをフィルター処理します。次に、これらの友達を数えて、X を超えているかどうかを確認します。これを他のユーザーに対しても行います。両方とも保留制限を超えていない場合は、両方のエンティティのステータスをトランザクションとして承認済みに変更します。
確認済みの友達を表示- 友達データは関係ごとに 2 回書き込まれます。次に、friend1 のインデックスと status のインデックスを使用して、ユーザーのすべてのフレンドをクエリし、受け入れられたフレンドのみをフィルター処理します。友達の名前を表示する方法がわかりません (たとえば、ユーザーが名前を変更した場合、これはすべての友達関係とメールに反映される必要があります!)。
保留中の友達を表示- 友達のデータは関係ごとに 2 回書き込まれます。次に、friend1 のインデックスと status のインデックスを使用して、ユーザーのすべてのフレンドをクエリし、保留中のフレンドのみをフィルター処理します。友達の名前を表示する方法がわかりません (たとえば、ユーザーが名前を変更した場合、これはすべての友達関係とメールに反映される必要があります!)。
送信済みメールの表示- from プロパティのインデックスを使用して、クエリを実行し、ユーザーから送信されたすべてのメールを、created_date (新しい順) で一度に 5 つずつ取得します。(たとえば、ユーザーが名前を変更した場合、これはすべての友達関係と電子メールに反映される必要があります!)。
受信した電子メールを表示する - to プロパティのインデックスを使用して、クエリを実行し、作成日 (新しい順) の順序で一度に 5 人のユーザーに受信したすべての電子メールを取得します。電子メールが表示されると、エンティティの has_seen プロパティが true に更新されます。(たとえば、ユーザーが名前を変更した場合、これはすべての友達関係と電子メールに反映される必要があります!)。
2 人のユーザー間の電子メールを表示する- [lower_lexicographic_email]:[higher_lexicographic_email] に基づく相互 ID のインデックスを使用して、相互の電子メールをクエリします。5個ずつ、新しい順に並べています。(たとえば、ユーザーが名前を変更した場合、これはすべての友達関係と電子メールに反映される必要があります!)。
メールの作成- フレンド 1 とステータス インデックスを使用して、ユーザーがフレンドであることを確認します。彼らが友達なら、私はメールを挿入します。
node.js - gcloud-node トランザクションのキャプチャ エラー
トランザクション エラーをキャプチャしようとしています。これらのエンティティが既に存在するため、エラーが発生するはずの次のコードがありますが、コンソールには何も出力されていません。