一般,在咱們項目中用 Java 代碼上傳數據到 S3 是下面那樣的操做ui
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
s3Client.putObject("bucket_name", "s3key.txt", new ByteArrayInputStream("hello".getBytes()), new ObjectMetadata()); //ObjectMetadata 沒什麼特別的話能夠爲 nullspa
雖然 putObject() 的第三個參數是一個流,但它是輸入流, 並不是輸出流啊。也就是說在執行該方法時必須把全部待上傳的上據所有準備在這個輸入流中,因此這裏就直接用一個 ByteArrayInputStream 來包裹需上入到 S3 的數據內容。blog
固然 putObject() 也就沒法像 FileObjectOutputStream 那樣流式寫入內容到文件中,由於 putObject() 先後都沒有與 bucket 上那個文件上有聯繫。即便是用 PipedInputStream/PipedOutputStream 也不行, 好比說下面的代碼 閱讀全文 >>ip