2014-02-01 4 views
2

Так что я использую S3 для хранения в основном аудиофайлов, я передаю эти файлы с облачным экраном. Мне нужно изменить метаданные этих файлов (а не метаданные объекта s3, но теги музыки) или конвертировать эти файлы в другой формат (mp3 в m4a и т. Д.). Поэтому, как я вижу, мне нужно загрузить эти файлы на свой сервер, изменить файлы или перекодировать эти файлы и повторно загрузить файлы.Скачивание файла для его изменения на Amazon S3

Я вижу некоторые способы сделать это, но у меня есть некоторые сомнения, по которым это правильный способ или лучший способ сделать это.

Так один из способов будет загрузить файл со следующим кодом

S3Object object = s3.getObject(new GetObjectRequest(bucketName, key)); 
     System.out.println("Content-Type: " + object.getObjectMetadata()); 
     //displayTextInputStream(object.getObjectContent()); 

И я мог бы использовать файл, чтобы записать файл на мой сервер. Мой вопрос: как получить только имя файла из S3Object, я искал метаданные и пытался использовать getContentDisposition(), но он возвращает null, глядя прямо в AWS Console. Я вижу правильное имя файла без путь.

Другая идея, которую я имею, - использовать облачный интерфейс для загрузки файла, создавая дистрибутив загрузки.

Могу ли я работать непосредственно с входными данными и вводить их для изменения метаданных?

+0

И вопрос в том, что? –

+0

Извините, я ударил save, прежде чем смог закончить. –

ответ

0

Вы можете сохранить этот файл под любым именем, которое вы выберете, как и любой другой файл, загружаемый через HTTP.

Однако, как вы упомянули в своем вопросе:

String disposition = object.getObjectMetadata().getContentDisposition() 

Если дать вам дополнительный Content-Disposition HTTP заголовок, который указывает информацию представления для объекта, таких как файл-имя рекомендуемого для объекта, чтобы быть сохранен как.

Эта функция возвращает null, если заголовок Content-Disposition не установлен.

Это из онлайн-документации Amazon. Для получения дополнительной информации о том, как заголовок Content-Disposition влияет на поведение клиента HTTP, см. http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1.

+0

Когда я печатаю распоряжение, я получаю нуль –

+0

Я полагаю, что ваша проблема в том, что вы действительно загружаете файл обратно на S3, а переопределяете предыдущую версию, правильно? –

+0

Да, я думаю об обходных решениях для этого, но я думал, что смогу получить имя файла без пути –

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