2017-08-05 3 views
2

J'utilise javascript, node.js et aws sdk. Il existe de nombreux exemples de téléchargement de fichiers existants vers S3 directement avec une URL signée, mais maintenant j'essaie de télécharger des chaînes et de créer un fichier dans S3, sans aucun fichier local sauvegardé. Toute suggestion, s'il vous plaît?chaîne de téléchargement direct du navigateur à s3 sans fichier local

Répondre

1

N'a pas essayé amazon-web-services, amazon-s3 ou aws-sdk, mais si vous êtes en mesure de télécharger File ou FormData objets que vous pouvez créer ou les deux à JavaScript et télécharger l'objet .

// create a `File` object 
const file = new File(["abc"], "file.txt", {type:"text/plain"}); 
// create a `Blob` object 
// will be converted to a `File` object when passed to `FormData` 
const blob = new Blob(["abc"], {type:"text/plain"});  
const fd = new FormData(); 
fd.append("file", blob, "file.txt"); 
+0

C'est tout ce dont nous avons besoin. Je vous remercie. – Bob

1

Vous pouvez essayer quelque chose comme ceci:

var fs = require('fs'); 
exports.upload = function (req, res) { 
    var file = req.files.file; 
    fs.readFile(file.path, function (err, data) { 
     if (err) throw err; // Something went wrong! 
     var s3bucket = new AWS.S3({params: {Bucket: 'mybucketname'}}); 
     s3bucket.createBucket(function() { 
      var params = { 
       Key: file.originalFilename, //file.name doesn't exist as a property 
       Body: data 
      }; 
      s3bucket.upload(params, function (err, data) { 
       // Whether there is an error or not, delete the temp file 
       fs.unlink(file.path, function (err) { 
        if (err) { 
         console.error(err); 
        } 
        console.log('Temp File Delete'); 
       }); 

       console.log("PRINT FILE:", file); 
       if (err) { 
        console.log('ERROR MSG: ', err); 
        res.status(500).send(err); 
       } else { 
        console.log('Successfully uploaded data'); 
        res.status(200).end(); 
       } 
      }); 
     }); 
    }); 
};