J'utilise Amazon aws Java SDK pour le codage.
J'ai téléchargé quelques-uns de mes fichiers locaux vers S3 en utilisant SSE-C (cryptage côté serveur utilisant la clé fournie par le client) et quelques fichiers sans utiliser de cryptage. Avant de télécharger un fichier dans un autre module, je dois m'assurer que ce fichier particulier est crypté ou non. Je me suis référé à ce qui suit lien . Mais cette procédure concerne les fichiers chiffrés avec SSE (qui est différent de SSE-C). Après avoir consulté les API Java d'Amazon aws, j'ai écrit le code ci-dessous.
Base64 b = new Base64();
byte[] keyBytes = b.decode("encryptionKey");
SecretKey key = new SecretKeySpec(keyBytes,0,keyBytes.length,"AES");
SSECustomerKey sseKey = new SSECustomerKey(key);
GetObjectMetadataRequest request2 =new GetObjectMetadataRequest("bucketname","keyname").withSSECustomerKey(sseKey);
ObjectMetadata metadata = s3client.getObjectMetadata(request2);
System.out.println("Encryption algorithm used: " + metadata.getSSECustomerAlgorithm());
Le morceau de code ci-dessus fonctionne bien pour télécharger un fichier crypté. Mais il donne une exception lors du téléchargement d'un fichier qui n'est pas crypté.
Existe-t-il une API commune pour obtenir les métadonnées des fichiers cryptés et non cryptés ?