Как загрузить изображение из приложения iOS (созданного с помощью Kony) в AWS S3, используя aws-sdk для javascript? - PullRequest
0 голосов
/ 05 октября 2018

Я использую Kony Visualizer (платформа с низким кодом) для создания мобильного приложения (создает собственное приложение для iOS и Android), которое может публиковать изображения, сделанные пользователем, в корзину s3.В настоящее время я использую AWS SDK для JS (простой импорт в эту платформу с низким кодом) и пытаюсь использовать вызов s3.putObject, чтобы подтолкнуть изображение вверх.Я обнаружил, что могу отправить строку base64 необработанных байтов изображения в хранилище s3 с устройства Android, но мне не удается это сделать с устройства iOS.Я также разместил это на форуме Kony на по этой ссылке и вставлю свой код ниже.Кроме того, я знаю, что соединение с s3 работает, потому что я отправляю csv файлы в то же самое место в другой части моего кода.

AWS.config.update({
    accessKeyId: <accessKeyId>,
    secretAccessKey: <secretAccessKey>,
    region: <region>
});

var rawImg = this.view.Picture.rawBytes;
var b64img = kony.convertToBase64(rawImg);

var bucketImage = new AWS.S3();
var paramsImage = {
    Bucket: <bucket-name>,
    Key: "images/imageB64.jpg",
    ContentType: 'image/jpg',
    Body: b64img};

bucketImage.putObject(paramsImage, function(err,res){
    if (err) {
        alert(err);}
    else {
        alert('Success');
    }
});

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Я уверен, что опция FFI сработала бы, но я обнаружил, что, как только я добавил параметры безопасности транспорта приложения - Разрешить произвольные загрузки - ДА в мой Info.plist в XCode, и эти загрузки начали работать.Очевидно, это использует заголовки http, которые iOS автоматически не разрешает.Мне также пришлось добавить следующий JSON в мой файл infoplist_configuration.json под моим проектом в Kony Workspace: «NSAppTransportSecurity»: {«NSAllowsArbitraryLoads»: true}

0 голосов
/ 05 октября 2018

Если у вас по-прежнему возникают проблемы с загрузкой фотографий с помощью AWS SDK для JS, попробуйте альтернативный способ создания интерфейса внешних функций (FFI) и использования AWS SDK для iOS.Вот как разработчик из моей команды получил загрузки S3, работающие в нашем приложении Kony.

Для этого он использовал классы AWSS3TransferManager и AWSS3TransferManagerUploadRequest.

Вот пример кода в Swift

...