AWS лямбда (без сервера) загрузка файла с использованием java - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь загрузить файл в AWS S3 корзину, используя Lambda-сервер без приложения, написанного в Java.

.

enter image description here

И я получаю двоичное содержимое в виде строки в моей конечной точке, как показано ниже (скриншот прилагается).

enter image description here

Я пытаюсь преобразовать эту двоичную строку в байтовый массив и загрузить в корзину S3.

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

Пример кода:

@Override
public ServerlessOutput handleRequest(ServerlessInput serverlessInput, Context context) {
    ServerlessOutput output = new ServerlessOutput();
    String keyName = UUID.randomUUID().toString();
    String content = serverlessInput.getBody();
    byte[] encoded = this.toBinary(content).getBytes();
    ObjectMetadata metadata = new ObjectMetadata();
    metadata.setContentLength(encoded.length);
    metadata.setContentType(PNG_MIME);
    s3.putObject(new PutObjectRequest(
        ARTICLE_BUCKET_NAME,
        keyName,
        new ByteArrayInputStream(encoded),
        metadata)
    );
    output.setBody("Successfully inserted article ");
}

private String toBinary(String data) {
    byte[] bytes = data.getBytes();
    StringBuilder binary = new StringBuilder();
    for (byte b : bytes) {
        int val = b;
        for (int i = 0; i < 8; i++) {
            binary.append((val & 128) == 0 ? 0 : 1);
            val <<= 1;
        }
        binary.append(' ');
    }
    return binary.toString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...