Ich habe es geschafft, meine generierte PDF-Datei von meinem Knoten JS-Server auf s3 hochzuladen. Pdf sieht in meinem lokalen Ordner gut aus, aber als ich versuchte, über die AWS-Konsole darauf zuzugreifen, wurde "PDF-Dokument konnte nicht geladen werden" angezeigt.PDF-Upload nach AWS S3 beschädigt
Ich habe versucht, es über die s3.upload und s3.putObject APIs zu laden, (für die PutObject ich auch eine on-Ende-Checker verwendet, um sicherzustellen, dass die Datei vollständig geladen wurde vor dem Senden der Anfrage). Aber die Datei im S3-Bucket ist immer noch die gleiche (kleine) Größe, 26 Bytes und kann nicht geladen werden. Jede Hilfe wird sehr geschätzt !!!
var pdfDoc = printer.createPdfKitDocument(inspectionReport);
var writeStream = fs.createWriteStream('pdfs/inspectionReport.pdf');
pdfDoc.pipe(writeStream);
pdfDoc.end();
writeStream.on('finish', function(){
const s3 = new aws.S3();
aws.config.loadFromPath('./modules/awsconfig.json');
var s3Params = {
Bucket: S3_BUCKET,
Key: 'insp_report_test.pdf',
Body: '/pdf/inspectionReport.pdf',
Expires: 60,
ContentType: 'application/pdf'
};
s3.putObject(s3Params, function(err,res){
if(err)
console.log(err);
else
console.log(res);
})
öffnen Sie die Datei in einem Texteditor und schauen, was die Botschaft ist - höchstwahrscheinlich seine Ihre über den Fehler zu sagen –
Ich nehme die Datei soll als 26 Bytes größer sein. Führt die Zeile "console.log (res);" in Ihrem Code irgendetwas aus und druckt? Es klingt wie Ihre App beendet wird, bevor der 's3.putObject()' Aufruf abgeschlossen wird. –
'Body: '/ pdf/inspectionReport.pdf',' Wie viele Bytes gibt es im * string * '/ pdf/inspectionReport.pdf'? Sieht aus wie 26. 'Body' erwartet den * body * - keinen Pfad. –