Как клонировать ключ в Amazon S3 с помощью Python (и boto)?

"Пустой" прием установит его на нулевое значение для типа, который является не обязательно тем же как значением по умолчанию для свойства. Во-первых, если это - новый объект, почему не просто оставляют его в покое? С другой стороны, используйте TypeDescriptor:

PropertyDescriptor prop = TypeDescriptor.GetProperties(foo)["Bar"];
if (prop.CanResetValue(foo)) prop.ResetValue(foo);

Это уважает и [DefaultValue] и эти Reset{name}() шаблоны (как используется путем привязки и сериализация), создания ее очень универсальной и допускающей повторное использование.

при выполнении большого количества этого можно также получить повышение производительности с помощью TypeDescriptor вместо отражения, путем многократного использования PropertyDescriptorCollection и использования HyperDescriptor (тот же код, но очень быстрее или, чем refletion или, чем сырые данные TypeDescriptor).

16
задан Thotep 23 September 2009 в 09:34
поделиться

3 ответа

Просматривая исходный код boto, я обнаружил, что объект Key имеет метод «копирования». Благодарим за предложение по работе CopyObject.

4
ответ дан 30 November 2019 в 17:15
поделиться

S3 позволяет копировать объект за объектом. Операция CopyObject создает копию объекта, когда вы указываете ключ и сегмент исходного объекта, а также ключ и сегмент целевого назначения. Не уверен, что у boto есть компактная реализация.

2
ответ дан 30 November 2019 в 17:15
поделиться

Где сегмент - это сегмент назначения:

bucket.copy_key(new_key,source_bucket,source_key)
15
ответ дан 30 November 2019 в 17:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: