2017-09-14 2 views
1

Je dois passer des métadonnées utilisateur lorsque j'effectue une action put pour ajouter de nouveaux objets à un compartiment s3. Après que le fichier est téléchargé (objet est créé), je voudrais le s3: ObjectCreated: mettre à passer une notification à un appel de méthode api de repos pour un traitement ultérieur.Le SNS peut-il transmettre les métadonnées utilisateur à la couche de repos après l'événement créé par l'objet?

J'ai trouvé doc sur la façon de passer les métadonnées de l'utilisateur à l'opération put, mais pas doc sur la façon de faire le message sns contenir les métadonnées de l'utilisateur lors de l'envoi du message à la méthode api de repos.

Le message sns contient-il automatiquement les métadonnées utilisateur pour l'objet nouvellement créé ou dois-je effectuer une configuration supplémentaire pour que cela se produise?

Mise à jour:

Dois-je générer une demande de tête comme ce Node.js en utilisant:

 let authString: string = "AWS AKIAIOSFODNN7EXAMPLE:02236Q3V0RonhpaBX5sCYVf1bNRuU="; 
     var options = { 
      host: 'bucket.s3.amazonaws.com', 
      path: '/filename.jpg', 
      method: 'HEAD', 
      headers: { 'Authorization': authString, 'Date': 'Date: Wed, 28 Oct 2009 22:32:00 GMT' } 
     }; 

     var req = https.request(options, function(res) { 
      res.on('data', function(d) { 
       process.stdout.write(d); 
      }); 
     }); 

Répondre

0

Votre code qui reçoit le message SNS devra envoyer une demande HEAD au seau pour aller chercher la métadonnées de l'objet. Cette opération passe sous divers noms similaires à getObjectMetadata dans les SDK.

Il n'est pas inclus dans la notification d'événement. Ou vous pouvez coder une fonction Lambda pour recevoir l'événement initial, récupérer les métadonnées et tout combiner dans une nouvelle structure de message de notification contenant tout ce dont vous avez besoin, et le renvoyer à SNS ou SQS ou directement à votre API.

+0

Vous dites donc que lorsque sns appelle l'appel de repos et transmet les données à la méthode de repos, il revient alors à la couche de repos de faire un appel séparé dans la méthode de repos pour effectuer la demande de tête? Similaire à ce document: http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectHEAD.html#RESTObjectHEAD-responses-examples – user1790300

+0

Correct. Les métadonnées ne sont pas incluses dans la notification d'événement, elles doivent être récupérées. –

+0

Cela pourrait être un stupide et si oui, je m'excuse, ce sera une première tentative à ce sujet. Est-ce que la requête dans le nœud, ressemblerait à ceci que j'ai ajouté ci-dessus? – user1790300