實現 Amazon S3 數據(文件)分段上傳

探索是否能以流式寫數據到 S3

一般,在咱們項目中用 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

相關文章
相關標籤/搜索