2016-09-19 5 views
0

複数の.gzファイルを1つのgcsバケットから別のものにコピーしたい。ファイル名のパターンは 'Logs_'という接頭辞と '20160909'のような接尾辞を持つので、フルファイル名はLogs_2016090.gz、Logs_20160908.gzなどとなります。Logs_で始まるすべてのファイルを1つのgcsバケットから別のgcsバケットにコピーしたい。 。以下のようにコピー操作のために、この私がログ_ *のように末尾に*ワイルドカード文字を使用していGZについて:複数の.gzファイルを1つのGCSバケットからJavaの別のバケットにコピーする

Storage.Objects.Copy request = 
      storageService 
       .objects() 
       .copy("source_bucket", "Logs_*.gz", "destination_bucket", ".", content); 

以上私が使用しています「」すべてのファイルをdestination_bucketにコピーする必要があるので、そこに単一のファイル名を指定することはできません。残念ながら、このコードは機能せず、ファイルが存在しません。私はここでどのような変更が必要かわかりません。任意のJavaリンクまたは任意のコードが役立ちます。ありがとう!!

答えて

1

gsutilコマンドラインユーティリティはうれしいワイルドカードをサポートしていますが、GCS API自体は低レベルのコマンドであり、そうではありません。 storage.objects.copyメソッドには、1つの正確なソースと1つの正確な宛先が必要です。

私は、次のいずれかをお勧めします。

  • はそれらを反復その後、一致するすべてのソース・オブジェクトの名前を取得するにはstorage.objects.list呼び出しを行いますgsutil、または
  • を呼び出す小さなスクリプトを使用します、それぞれのコピーを呼び出すか、
  • gzipファイルを10 TBほど上回る場合は、Googleのクラウドストレージ転送サービスを使用してファイルをコピーすることを検討してください。
+0

私は一度に1つずつ転送するファイルのリストをループしています。これを見て貴重な情報を共有してくれてありがとう。 – Programmer

関連する問題