Проблема хранения данных в S3 с использованием аннотации @Lob

Для моего приложения я храню данные в simpleDB, но поскольку SimpleDB имеет максимум 1024 символа на атрибут, поэтому большие значения должны храниться в S3.

Я делаю что-то вроде этого:

@Basic (выборка = FetchType.LAZY)
@Lob
приватный байт [] мультимедиа; // храниться в s3

и @Lob на своих методах получения и установки. Запрос JPA не выдает ошибок.... но мультимедийное поле не создается ни в s3, ни в simpleDB. Пожалуйста, руководство, где искать решение этой проблемы

Также предложите, как заставить строки simpledb ссылаться на тот же мультимедийный объект в s3(чтобы уменьшить избыточность данных), как когда я делал это вручную, создавая lobkey и пытаясь использовать это значение в другом объекте... он создал новую копию в s3 с новым ключом.

Спасибо

1 ответ

Решение

Вы можете хранить свои мультимедийные файлы в Amazon s3 и хранить общедоступный URL-адрес этого мультимедийного файла в Amazon SimpleDB.

Давайте предположим, что у вас есть изображение, скажем.. my_image.png. Загрузите это изображение в Amazon s3 в своем желании... скажем, my_bucket. Создайте общедоступный URL этого загруженного объекта s3. Это было бы. http://my_bucket.s3.amazonaws.com/my_image.png. Загрузите этот общедоступный URL в Amazon SimpleDB.

Это упростит вашу задачу, и вы сможете синхронизировать загруженные данные через Amazon Simple-db и Amazon s3.

Другие вопросы по тегам