Ошибка при попытке обновить метаданные фотографии с помощью Street View Publish Service Client - Python
Я загрузил пару фотографий в Street View и хочу использовать клиентскую библиотеку Python для обновления ее метаданных. Найдите ниже фрагмент моего кода:
from google.proto.streetview.publish.v1 import resources_pb2
from google.streetview.publish.v1 import street_view_publish_service_client as client
from google.protobuf import field_mask_pb2
streetview_client = client.StreetViewPublishServiceClient(credentials=credentials)
for photo in streetview_client.list_photos(0, ''):
con = resources_pb2.Connection()
target_id = resources_pb2.PhotoId()
target_id.id = "photo_id"
con.target.id = target_id.id
photo.connections.extend([con])
update_mask = field_mask_pb2.FieldMask()
update_mask.FromJsonString("connections")
response = streetview_client.update_photo(photo, update_mask)
break
Я хочу соединить обе фотографии, поэтому добавляю целевой идентификатор к фотографии запроса и поле "подключения" к маске update_mask. Результат после update_photo
вызовом является следующее сообщение об ошибке:
google.gax.errors.RetryError: RetryError (Возникла исключительная ситуация в методе повторных попыток, который не был классифицирован как временный, вызванный <_Rendezvous для RPC, который завершился с помощью (StatusCode.INVALID_ARGUMENT, пустое имя уровня не принято.)>)
Любой намек?
1 ответ
Для того, чтобы сделать связь между двумя фотографиями, вам нужно использовать Method: photos.batchUpdate
, Connections
должен быть установлен прямо под Photo
, Кроме того, следует отметить метаданные Photo
что вам нужно реализовать.
Вот пример кода.
pose = resources_pb2.Pose(level=resources_pb2.Level(name="lvl", number=0))
connection1 = resources_pb2.Connection(target=resources_pb2.PhotoId(id="idOfConnection1"))
photo = resources_pb2.Photo(connections=[connection1], pose=pose)