問題タブ [gsutil]
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.
python - Python を使用して Google Cloud Storage バケットを一覧表示する
私はこのチュートリアルに従っています: https://developers.google.com/storage/docs/gspythonlibraryで、バケットを一覧表示しようとしているときにいくつかのエラーが発生します。
gsutil をダウンロードして、次のような PYTHONPATH に追加しました。
/home/nicolasalvo/tools/gsutil/third_party/boto:/home/nicolasalvo/tools/gsutil
私も実行しました:
私が実行しようとしているコードは次のとおりです。
私が持っている最初のエラーは次のとおりです。
手動で変更して修正しました:
することが
今私が直面しているエラーは次のとおりです。
グローバル オブジェクトを使用する前に宣言しようとしましたが、役に立ちませんでした。
また、手動で修正することなく、Google が提供する Cloud Storage 用のライブラリを使用できるはずです。
私はPython 2.7.3を実行しています
どんな助けでも大歓迎です
python - Google クラウド ストレージの署名付き URL でバージョニングを使用する
オブジェクトで「世代」(バージョン番号) を指定するときに、Google Cloud Storage (GCS) の GET リクエストに署名するのに問題があります。生成なしで URL に署名することは魅力のように機能し、GET 要求は正常に機能します。ただし、パスの先頭に #generation を追加すると、署名付き URL を取得しようとすると、GCS サーバーは常に「アクセスが拒否されました」を返します。
たとえば、次の URL パスに署名すると問題なく動作します。
この URL パスに署名すると、アクセスが拒否されます。
https://storage.googleapis.com/BUCKET/OBJECT#1360887697105000
簡潔さとプライバシーのために、Signature、Expires、GoogleAccessId パラメーターを含む実際の署名付き URL は省略していることに注意してください。また、gsutil を使用して、バケット、オブジェクト、世代が正しいことも確認しました。
GCS では、「世代」番号による特定のオブジェクト バージョンへの署名付き URL アクセスが許可されますか? 特定のバージョンにアクセスする場合、URL 署名手順は異なりますか?
upload - GSUTIL が、その日にすでにアップロードされているファイルを再アップロードしない
Python 2.7.6 を使用して、Windows サーバー 2008 R2 上の Windows CMD スクリプトから GSUTIL v3.42 を実行しています。アップロードするファイルは「送信」ディレクトリに到着し、GSUTIL によって並行して「受信」バケットにアップロードされます。スクリプトは、アップロードの完了後に「着信」バケットのリストを要求し、アップロードの失敗を検出するために、リストされたファイルとアップロードしようとしたファイルを比較します。その後、別の別のスクリプトがファイルを「受信」バケットから「処理済み」バケットに移動します。
同じファイル (同じ名前/サイズ/コンテンツ/日付など) をもう一度アップロードしようとすると、アップロードされませんが、エラーは発生せず、ログに失敗を示すものは何もありません。私は「no clobber」オプションを使用していないので、gsutil はファイルをアップロードするだけだと思います。
以下のシナリオでは、ファイルが正常にアップロードされ、その日にすでに「処理済み」バケットに移動されていると想定しています。タイミングが重要な場合、2 回目のアップロードは最初のアップロードから 30 分以内に試行されます。
- ファイル A は「発信」ディレクトリに到着します。
- 「送信」のファイル リストを取得し、これを dirListing.txt に書き込みます。
を使用して GSUTIL アップロードを実行します
タイプdirListing.txt | python gsutil -m cp -I -L myGsutilLogFile.txt gs://myIncomingBucket
次に、GSUTIL リストを実行します。
python gsutil ls -l -h gs://myIncomingBucket > bucketListing.txt
ファイルが一致する dirListing.txt と bucketListing.txt を使用して、不一致を検出し、アップロードの失敗を検出します。
2 回目の実行では、ファイル A は手順 3 でアップロードされていないため、手順 4 で返されず、手順 5 で不一致が発生します。 .txt で、bucketListing.txt にはありません]
ファイルを「受信」バケットから「処理済み」バケットに移動する別のスクリプトが何らかの理由で失敗した場合、または本来の処理を実行しない場合に備えて、ファイルを再処理する機能が必要です。通常、実行ごとに数百のファイルがあるため、並行してアップロードする必要があります。
上記で説明したことは、GSUTIL の予想される動作ですか? (これを示唆するドキュメントは見たことがありません) もしそうなら、GSUTIL に強制的にアップロードを再試行させる方法はありますか? それとも、明らかな何かが欠けていますか?GSUTIL からのデバッグ出力が必要/役に立つ場合があります。
java - 「gsUtil」を使用してアプリの財務レポートを取得するにはどうすればよいですか?
バックグラウンド
アプリを公開すると、この Web サイトから財務レポートにアクセスできます。このWeb サイトにアクセスすると、次のことが可能になります。
https://play.google.com/apps/publish/?dev_acc=SOME_NUMBERS#ReportsPlace
ここで、「SOME_NUMBERS」はおそらくアカウントの一意の ID か何かです。
下部には、次のように書かれています。
財務レポートは、Google Cloud Storage と gsutil ツールを介してプログラムでアクセスすることもできます。レポートは次のプライベート バケットに保存されます。
gs://pubsite_prod_rev_SOME_NUMBERS
(SOME_NUMBERS については前と同じメモ)
問題
Python の要件 (ここから) と gsutil (ここから) の両方をインストールした後、彼らが書いたものを実際に使用する方法がわかりません。
それだけでなく、そこで実行しようとするコマンドについては、次のようになります。
このエラーについて話しているstackOverflowの投稿をいくつか見つけましたが、Pythonを知らないので、修正方法を理解するのが難しいと思います.
質問
gsUtil を実際にどのように使用しますか?
この問題を修正することは可能ですか?
他の方法で財務データにアクセスすることは可能ですか? おそらくJavaの代替品はありますか?利用可能なすべてのコマンドを備えた SDK でさえありますか?