問題タブ [gcloud-java]

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.

0 投票する
1 に答える
597 参照

java - Gcloud Storage からの画像または Pdf ファイルのダウンロードが破損している

電子メールの添付ファイルとして送信するために、Gcloud ストレージからダウンロードしたファイルを Mandrill API の添付ファイルとして使用しています。問題は、テキスト ファイルに対してのみ機能することですが、画像または Pdf の場合、添付ファイルが破損しています。 次のコードは、ファイルをダウンロードして Base64 でエンコードされた文字列に変換するためのものです。

この文字列を Mandrill API の MessageContent の Content に設定しています。

0 投票する
1 に答える
592 参照

google-cloud-storage - gcloud-java-storage Storage.BlobListOption.recursive(false) が機能しない

この提案に基づいて、appengine の外部の GCS バケットでgcloud-java ストレージを使用して、非再帰的なリストを作成しようとしています。

ただし、期待どおりに機能していないようです。つまり、設定したにもかかわらず、まだすべてのファイルがリストされていますStorage.BlobListOption.recursive(false)

私のコード構造は基本的に次のようなものです: Storage client = StorageOptions.defaultInstance().service(); Page<Blob> blobPage = client.list(my_bucket, Storage.BlobListOption.recursive(false)); for (Blob blob : blobPage.values()) { // it is still iterating all the leaf files in my_bucket }

BlobListOption実際には後で、どれも影響を受けていないように見えることがわかりました( maxResults, prefix) そして、リストは何があってもすべてのリーフファイルを返すだけです...

API の使い方が間違っているのでしょうか、それとも何が問題なのですか?

0 投票する
1 に答える
2084 参照

java - Java アプリケーションを Google Cloud Storage で認証するにはどうすればよいですか?

Google Cloud Storage 内のファイルを操作する Java アプリケーションを作成しています。gcloud-java私は仕事をしようとしているものを見つけました。

それらのを見ると、でログインした後に単純に実行できるはずgcloudですが、機能していないようです。を実行しようとしていますが、「指定されていない場合はログインしたプロジェクトが使用されますStorageExample」と表示されますが、ログインしても、プロジェクトを指定するかどうかに関係なくアクセスできません。

明らかに私の環境に何か問題がありますが、それを修正するにはどうすればよいですか? 例を変更するのではなく、環境を修正したいと考えています。

ノート:

  • Windows 10のCygwin 2.0.4で実行しています
  • 私はMaven経由でビルドしていませんが、それが問題の原因ではないと思います
0 投票する
1 に答える
157 参照

java - Google Cloud Storage からアーカイブ バージョンを取得する

経由でファイルのアーカイブ バージョンのリストを取得するにはどうすればよいgcloud-javaですか? にオプションが表示されませんBucket.list()。他に探すべき場所はありますか?

0 投票する
0 に答える
1942 参照

java - 特定の日付より前にアップロードされた最新のファイルを Google Cloud Storage から取得する

バージョニングが有効な GCS バケットで、特定の時間より前にアップロードされた最新のファイルを取得しようとしています。例えば:

2016 年 2 月 28 日の最後にアクティブだったファイル (つまり#1456707567816000、この場合は世代) を取得したいとします。すべてのバージョンのリストを取得してループするよりも良いオプションはありますか?

実際の例を更新します。

(外部ソースから)一連のファイルを継続的に再生成するジョブがあります。それが終わると、また始まります。時間 X に外部ソースからのエラーが発生し、その日付以降に生成されたすべてのファイルが破壊されます。時間 X は知っていますが、どのファイル セットが破損したかはわかりません。最新の有効なファイル セット (つまり、X より古い最新世代) を識別する最も簡単な方法は何ですか?

0 投票する
1 に答える
725 参照

email - GCLOUD から他のメールアドレス (gmail,yahoo) にメールを送信します。メール認証リンク、サブスクリプション確認のように

sendgrid/google-email-api/mailgun には行きたくない DNS-A(ホスト) @ 23.236.49.96 600 秒 sharenodes.com をマッピングしましたが、メールを送信できません。properties.put("mail.smtp.port", "2525"); を試しました。しかし、メールもエラーも受信しませんでした。ポート 25、465、587 の場合、Google がこれらのポートをブロックしているため、エラーがスローされます

0 投票する
1 に答える
506 参照

google-cloud-platform - gcloud Java クライアントを使用してリスト プロパティをエンティティに追加するにはどうすればよいですか?

プロパティを新しいエンティティに設定できます。

リストをプロパティとして追加するメソッドを確認できます。

ただし、これを作成する方法が見つかりませんValue<String>DatastoreHelper.makeValue()DatastoreV1 にはメソッドがありますが、別のValueオブジェクトを作成します。

0 投票する
0 に答える
84 参照

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 とステータス インデックスを使用して、ユーザーがフレンドであることを確認します。彼らが友達なら、私はメールを挿入します。