2014-11-27 4 views

ответ

0
+0

Видел, что, но не совсем уверен, как это помогает мне массово переименовывать объекты? – joshhunt

+0

@Andrei, но я не могу использовать gsutil + subprocess на моем проекте gae. –

+0

Вам не нужен gsutil в проекте GAE. Вы можете просто получить список объектов в своем коде и переименовать их. –

4

https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames

GSUtil поддерживает URI подстановочные знаки

EDIT

gsutil 3.0 release note

В рамках поддержки Ковш подкаталоге мы изменили символ *, чтобы соответствовать только до границ каталогов, и ввел новый ** подстановочные ...

ли вам есть каталоги под ковшом? если да, возможно, вам нужно спуститься к каждому каталогу или использовать **.

gsutil -m mv gs://my_bucket/**.JPG gs://my_bucket/**.jpg 

или

gsutil -m mv gs://my_bucket/mydir/*.JPG gs://my_bucket/mydir/*.jpg 

РЕДАКТИРОВАТЬ
GSUtil не поддерживает подстановочные знаки для назначения до сих пор (по состоянию на 4/12/'14)
Пустоты API.

поэтому на данный момент вам нужно получить список всех файлов JPG, и переименовать каждый файл.

пример питон:

import subprocess 
files = subprocess.check_output("gsutil ls gs://my_bucket/*.JPG",shell=True) 
files = files.split("\n")[:-1] 
for f in files: 
    subprocess.call("gsutil mv %s %s"%(f,f[:-3]+"jpg"),shell=True) 

Обратите внимание, что это может занять несколько часов.

+0

Хммм, похоже, не работает, появляется «CommandException: Destination (gs: //my_bucket/*.jpg) должен соответствовать точно 1 URL« – joshhunt

+0

Я отредактировал :) извините, у меня нет среды для тестирования сейчас, если не работаю, я бы проверил другие способы. – HayatoY

+0

Nah каталоги правы. Я думаю, проблема заключается в том, что он не выполняет замену шаблонов? – joshhunt

Смежные вопросы