2017-09-09 19 views
1

rootydir/yyyy/mm/dd という形式の日付指定フォルダがあります。Google Cloud Storage:すべてのサブフォルダの下にあるすべてのファイルのタイムスタンプを更新する最も簡単な方法

特定の日付範囲の下にあるすべてのファイルのタイムスタンプ、たとえば を2週間更新したいとします。これらのファイルはファイルストリーミングデータの摂取プロセスで取得することができます。

これを達成する最も簡単な方法は何ですか? UIコンソールには方法がありますか?またはgsutilを通してですか?

gsutil cp gs://your-bucket/object1 gs://your-bucket/object1 

(およびすべてのオブジェクトを超えるループを:使用して、例えば、

答えて

1

"root-dir/yyyy/mm/ddの形式のフォルダ"と言うときは、それらのオブジェクトをgs://my-bucket/root-dir/2016/12/25/christmas.jpgという名前のバケットにコピーしていますか?そうでない場合は、マイクの答えをご覧ください。そのパターンで名前が付けられていて名前を変更したいだけなら、gsutilのmvコマンドを使って、その接頭辞を持つすべてのオブジェクトの名前を変更することができます:

$ export BKT=my-bucket 
$ gsutil ls gs://$BKT/** 
gs://my-bucket/2015/12/31/newyears.jpg 
gs://my-bucket/2016/01/15/file1.txt 
gs://my-bucket/2016/01/15/some/file.txt 
gs://my-bucket/2016/01/15/yet/another-file.txt 

$ gsutil -m mv gs://$BKT/2016/01/15 gs://$BKT/2016/06/20 
[...] 
Operation completed over 3 objects/12.0 B. 

# We can see that the prefixes changed from 2016/01/15 to 2016/06/20 
$ gsutil ls gs://$BKT/** 
gs://my-bucket/2015/12/31/newyears.jpg 
gs://my-bucket/2016/06/20/file1.txt 
gs://my-bucket/2016/06/20/some/file.txt 
gs://my-bucket/2016/06/20/yet/another-file.txt 
1

GCSオブジェクトは不変なので、「更新」への唯一の方法は、タイムスタンプは、それ自体の上に各オブジェクトをコピーすることです 助けてくださいあなたはこれにしたい)。 これは現在のタイムスタンプを持つ、新しい世代の各オブジェクトを作成する高速の(メタデータのみの)操作です。

これを行うバケットでバージョン管理が有効になっている場合は、この方法でコピーする各ファイルの追加バージョンが作成されます。

関連する問題