Birt - Использование Amazon Javascript SDK в отчете

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

У меня есть несколько файлов изображений, хранящихся в корзине Amazon S3, в которой используются защищенные URL-адреса, поэтому я не могу просто встраивать их, говорит, что доступ запрещен, для этого мне нужно использовать AWS Javascript SDK, который позволяет мне передавать ключ Sceret и Access и файл, к которому я хочу получить доступ, чтобы получить предварительно подписанный URL-адрес, который я могу использовать в любом месте, чтобы получить этот файл,

пока все хорошо,

Теперь я хочу выполнить аутентификацию и получить предварительно подписанный URL-адрес в отчете, для этого мне нужно включить этот файл sdk javascipt aws-sdk-2.1.45.min.js в отчет и вот где я застрял,

Я попытался добавить Javascript SDK с помощью ресурсов отчета

но отчет даже не запускается может быть некоторые другие javascript conflcts, я получаю en error

Затем я попытался добавить этот JS с помощью элемента Text

Теперь SDK включен в отчет

Но когда я пытаюсь использовать код JavaScript

выдает ошибку, что AWS не определено,

Я также попытался использовать раздел clientScript отчета head.js(), здесь все работает нормально, но как мне получить доступ к объекту, который я получаю после аутентификации в отчете

AWS.config.update({accessKeyId: 'xxxxx', secretAccessKey: 'xxxxxxxxxxx'});

AWS.config.region = 'eu-west-1';

var s3 = new AWS.S3();

так что я могу передать защищенный URL-адрес изображения (который находится в базе данных) в объект s3 и получить общедоступный URL-адрес, используя этот объект аутентификации, и установить его обратно для изображения URL-адреса,

Если у кого-то есть идеи, пожалуйста, поделитесь, где я делаю ошибку,

Большое спасибо!

1 ответ

Вы, вероятно, хотите использовать AWS SDK для Java, а не Javascript. Загрузите его, добавьте aws-java-sdk-1.10.11.jar и его зависимости к jar-ресурсам отчета или к вашему class-path. Таким образом, вы сможете вызывать API-интерфейсы AWS во всех регулярных выражениях BIRT, даже в вычисляемом столбце набора данных.

importPackage(Packages.com.amazonaws.services.s3);
var s3=new AmazonS3Client();

Однако при использовании API JavaScript, как вы уже пробовали, AWS вызывается с точки зрения клиента, и результаты не могут быть обработаны на стороне сервера. Возможно, по-прежнему возможно (но болезненно) отображать изображения в формате HTML, но не в форматах PDF и Office.

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