Как преобразовать строку SQL varbinary в файл, который можно вставить в корзину S3 - PullRequest
0 голосов
/ 19 сентября 2019

Я работаю с кодом, который будет запрашивать таблицу, содержащую varbinary данные, и использовать эти данные для создания файла в корзине S3.Данные varbinary были взяты из файла Excel.

Из-за проблем с подключением сервера к aws lambda у меня есть только жестко закодированная строка varbinary для работы, и поэтому я использую ее как пример данных для вставки вS3 Bucket

Я читал, что из-за того, как sql кодирует varbinary данные, он должен быть сначала закодирован в utf8, а затем в base64.Однако это не сработало.Я также пробовал другие форматы кодирования.

Я использую приведенный ниже код безуспешно

var AWS = require('aws-sdk');
const s3 = new AWS.S3();

exports.handler = async (event) => {

var body = new Buffer.from(<sql varbinary string>).toString('utf8');
var decbody = new Buffer.from(body,'base64');



var a = await s3.upload({
            Key: 'key.xls',
            Bucket: 'testbucket',
            Body: decbody
            //ContentType: 'application/vnd.ms-excel'
        }).promise();

 console.log(a);
};

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

...