У меня возникают проблемы с настройкой опции «Метаданные» при загрузке файлов на Amazon S3 с использованием AWS SDK PHP v2. documentation that I'm reading для метода загрузки() говорится о том, что 5-й параметр является массивом вариантов ...Метаданные с настройками Amazon S3 не работают с использованием AWS SDK PHP v2 upload()
* $ опции Пользовательские параметры, используемые при выполнении команд: - параметры: Пользовательские параметры для использования с загрузкой. Параметры должны отображаться в параметрах операции PutObject или InitiateMultipartUpload. - min_part_size: Минимальный размер для каждой загруженной части, когда выполняет многостраничную загрузку. - параллелизм: максимальное количество одновременных многостраничных загрузок . - before_upload: Обратный вызов для вызова перед каждой многостраничной загрузкой. Обратный вызов получит объект жрать \ Common \ Event с контекстом. *
Мой upload()
код выглядит следующим образом ..
$upload = $client->upload(
'<BUCKETNAME>',
'metadatatest.upload.jpg',
fopen('metadatatest.jpg','r'),
'public-read',
array('Metadata' => array(
'SomeKeyString' => 'SomeValueString'
))
);
... и нет мета данных устанавливается после загрузки.
Если же я использую putObject()
as documented here, который я предполагаю, это метод «нижний уровень» по сравнению с upload()
...
$putObject = $client->putObject(
array(
'Bucket' => '<BUCKETNAME>',
'Key' => 'metadatatest.putobject.jpg',
'Body' => file_get_contents('metadatatest.jpg'),
'ACL' => 'public-read',
'Metadata' => array(
'SomeKeyString' => 'SomeValueString'
)
)
);
мета данные успешно возвращается, когда я называю getObject()
или просмотреть файл непосредственно в мой браузер при загрузке с помощью putObject()
$getObject = $client->getObject(
array(
'Bucket' => '<BUCKETNAME>',
'Key' => 'metadatatest.putobject.jpg'
)
);
Я предпочел бы использовать метод $client->upload()
в документации говорится
Загрузите файл, поток или строку в ведро. Если размер загрузки превышает указанный порог, загрузка будет выполняться с использованием параллельных многостраничных загрузок .
Я не уверен, что я пропустил?
Кажется, что это может быть ошибка. Сообщите об этом по адресу https://github.com/aws/aws-sdk-php/issues. Я бы также упомянул размер загружаемых объектов, потому что это может быть только проблема с многостраничными загрузками. –
@JeremyLindblom Cheers Я дам этот проспект выстрела. Файл был довольно маленьким, так как 'putObject()' обрабатывает его в порядке. – Scuzzy
@JeremyLindblom Это не ошибка кода, а проблема с написанием документации для этого метода. Я также обнаружил, что это запутывает, пока я не посмотрел на фактический исходный код. Возможно, вы, ребята, можете улучшить его с помощью некоторых примеров, которые прояснят вещи. – dcro