没有使用hadoop文件系统和bouncycastle将数据写入s3

sqyvllje  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(343)

我使用以下代码将加密数据写入amazon s3:

byte[] bytes = compressFile(instr, CompressionAlgorithmTags.ZIP);

PGPEncryptedDataGenerator encGen = new PGPEncryptedDataGenerator(new JcePGPDataEncryptorBuilder(PGPEncryptedData.CAST5).setWithIntegrityPacket(withIntegrityCheck).setSecureRandom(new SecureRandom()).setProvider("BC"));

encGen.addMethod(new JcePublicKeyKeyEncryptionMethodGenerator(pubKey).setProvider("BC"));

OutputStream cOut = encGen.open(out, bytes.length);

cOut.write(bytes);
cOut.close();

如果我“出发”到:

final OutputStream fsOutStr = new FileOutputStream(new File("/home/hadoop/encrypted.gpg"));

文件写得很好。
但是,当我尝试将其写入s3时,它不会给我任何错误,似乎可以工作,但在检查s3时没有数据:

final FileSystem fileSys  = FileSystem.get(new URI(GenericUtils.getAsEncodedStringIfEmbeddedSpaces(s3OutputDir)), new Configuration());
final OutputStream fsOutStr = fileSys.create(new Path(s3OutputDir)); // outputPath on S3

你知道为什么它能很好地将数据写入本地磁盘,却不能将文件写入s3吗?

相关问题