How to write a string to Amazon S3 bucket?

后端 未结 7 521
花落未央
花落未央 2020-12-10 10:42

How can I add a string as a file on amazon s3? From whaterver I searched, I got to know that we can upload a file to s3. What is the best way to upload data without creating

相关标签:
7条回答
  • 2020-12-10 11:08

    If you're using java, check out https://ivan-site.com/2015/11/interact-with-s3-without-temp-files/

    import com.amazonaws.services.s3.AmazonS3;
    import com.amazonaws.services.s3.AmazonS3Client;
    import com.amazonaws.services.s3.model.GetObjectRequest;
    import com.amazonaws.services.s3.model.ObjectMetadata;
    import com.amazonaws.services.s3.model.PutObjectRequest;
    import com.amazonaws.services.s3.model.S3Object;
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    import java.io.*;
    import java.nio.charset.StandardCharsets;
    
    class S3StreamJacksonTest {
        private static final String S3_BUCKET_NAME = "bucket";
        private static final String S3_KEY_NAME = "key";
        private static final String CONTENT_TYPE = "application/json";
    
        private static final AmazonS3 AMAZON_S3 = new AmazonS3Client();
        private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
        private static final TestObject TEST_OBJECT = new TestObject("test", 123, 456L);
    
        public void testUploadWithStream() throws JsonProcessingException {
            String fileContentString = OBJECT_MAPPER.writeValueAsString(TEST_OBJECT);
            byte[] fileContentBytes = fileContentString.getBytes(StandardCharsets.UTF_8);
            InputStream fileInputStream = new ByteArrayInputStream(fileContentBytes);
            ObjectMetadata metadata = new ObjectMetadata();
            metadata.setContentType(CONTENT_TYPE);
            metadata.setContentLength(fileContentBytes.length);
            PutObjectRequest putObjectRequest = new PutObjectRequest(
                    S3_BUCKET_NAME, S3_KEY_NAME, fileInputStream, metadata);
            AMAZON_S3.putObject(putObjectRequest);
        }
    }
    
    0 讨论(0)
提交回复
热议问题