amazon s3에서 문자열을 파일로 추가하려면 어떻게해야합니까? 검색된 모든 것을 통해 s3에 파일을 업로드 할 수 있다는 것을 알아야합니다. 파일을 만들지 않고 데이터를 업로드하는 가장 좋은 방법은 무엇입니까?Amazon S3 버킷에 문자열을 쓰는 방법은 무엇입니까?
답변
파일을 만들지 않고 데이터를 업로드하는 가장 좋은 방법은 무엇입니까?
S3에 파일을 만들지 않은 경우에는 실제로 그렇게 할 수 없습니다. Amazon S3에서 데이터를 저장하는 방법은 파일 또는보다 정확한 용어를 사용하여 개체입니다. 객체에는 1 바이트 0 바이트에서 5 테라 바이트의 데이터가 포함될 수 있으며 버킷에 저장됩니다. 아마존의 S3 homepage lays out the basic facts quite clearly. (AWS의 다른 데이터 저장 옵션의 경우 예를 들어 SimpleDB을 읽을 수 있습니다.
로컬 임시 파일을 만들지 않은 경우 사용하는 응답은 사용중인 라이브러리/도구에 따라 다릅니다. (RickMeasham 제안으로, 더 세부 사항을 추가하십시오!)가 s3cmd 도구로, JetS3t의 자바 라이브러리와 직접 would be easy 문자열을 업로드하는 동안 예를 들어, 당신은 임시 파일을 생성 건너 뛸 수 없습니다
// (First init s3Service and testBucket)
S3Object stringObject = new S3Object("HelloWorld.txt", "Hello World!");
s3Service.putObject(testBucket, stringObject);
S3에있는 객체의 크기는 0 바이트 일 수 있으며 사용자가 제안한 최소 크기는 아닙니다. :) – chilts
Amazons API를 사용하여 어떻게하는지, S3Object 버전에는 그러한 생성자가 없습니다 –
하지 않습니다 멋지게 보일 지 모르지만, 아마존의 자바 클라이언트를 사용하여 어떻게 할 수 있을까요, 어쨌든 JetS3t는 그 뒤를 쫓을 것입니다. 당신이 자바를 사용하는 경우
private boolean putArtistPage(AmazonS3 s3,String bucketName, String key, String webpage)
{
try
{
byte[] contentAsBytes = webpage.getBytes("UTF-8");
ByteArrayInputStream contentsAsStream = new ByteArrayInputStream(contentAsBytes);
ObjectMetadata md = new ObjectMetadata();
md.setContentLength(contentAsBytes.length);
s3.putObject(new PutObjectRequest(bucketname, key, contentsAsStream, md));
return true;
}
catch(AmazonServiceException e)
{
log.log(Level.SEVERE, e.getMessage(), e);
return false;
}
catch(Exception ex)
{
log.log(Level.SEVERE, ex.getMessage(), ex);
return false;
}
}
, 이것은 나를 위해 작동 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);
}
}
체크 아웃 :
public static PutObjectResult WriteString(String bucket, String key, String stringToWrite, AmazonS3Client s3Client) {
ObjectMetadata meta = new ObjectMetadata();
meta.setContentMD5(new String(com.amazonaws.util.Base64.encode(DigestUtils.md5(stringToWrite))));
meta.setContentLength(stringToWrite.length());
InputStream stream = new ByteArrayInputStream(stringToWrite.getBytes(StandardCharsets.UTF_8));
return s3Client.putObject(bucket, key, stream, meta);
}
양동이 문자열을 받아들이는 overload for the AmazonS3.putObject method가, 키 문자열 텍스트 내용의 문자열. 스택 오버플로에 대한 언급을 보지 못했기 때문에 이것을 여기에두고 있습니다. 그것은 @ Jonik의 대답과 유사 할 것입니다. 그러나 추가적인 의존성은 없습니다. PHP와 함께 할 수있는 간단한 방법이있다
는AmazonS3 s3client = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1).build();
s3client.putObject(bucket, key, contents);
, 단순히 키에 새 파일의 이름을 지정하여 객체의 본문으로 문자열을 보내 -
$s3->putObject(array(
'Bucket' => [Bucket name],
'Key' => [path/to/file.ext],
'Body' => [Your string goes here],
'ContentType' => [specify mimetype if you want],
));
이 생성됩니다 지정된 키에 따른 새로운 파일. 문자열에 지정된 내용을 갖습니다.
나는 아무도 여기에 맞는 대답이 없다는 사실에 놀랐습니다. Java API에 대해서는 여기 official documentation을 참조하십시오.
s3Client.putObject(new PutObjectRequest(S3_BUCKET_NAME, fileName, rawString));
더 프로그래밍 언어의 here을 확인하시기 바랍니다.
[redirectLocation] (https : //docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/PutObjectRequest.html # PutObjectRequest-java.lang.String-java.lang.String-java.lang.String-)? – Valentin
[docs] (https://docs.aws.amazon.com/AmazonS3/latest/dev/UploadObjSingleOpJava.html)에 따르면. 그게 다 끝났어. –
이 문서는 파일을 업로드하는 것에 관한 내용이며, 내용을 String으로 업로드하는 것에 관한 내용은 없습니다. 가장 간단하고 정확한 해결책은 여기에 있습니다 - https://stackoverflow.com/a/42510981/7374267 – Valentin
- 1. Amazon S3 API 액세스를 제한하는 방법은 무엇입니까?
- 2. Amazon S3 및 swfaddress
- 3. Amazon S3 지역 이전?
- 4. Zend Framework Amazon S3. 양동이에 하위 폴더를 만드는 방법은 무엇입니까?
- 5. 소셜 네트워크 용 Amazon S3?
- 6. Zend S3.php를 사용하여 S3의 버킷에 액세스 할 수 없습니다.
- 7. S3 : 중복 버킷
- 8. Amazon S3에서 여러 도메인을 사용하여 동일한 버킷에 액세스하려면 어떻게해야합니까?
- 9. Postfix 및 Amazon S3
- 10. 소프트웨어 공급을위한 Amazon S3
- 11. ClickOnce 및 Amazon S3
- 12. android amazon s3 업로드
- 13. iPhone App에서 Amazon S3 서비스로 업로드
- 14. 버킷 당 Amazon S3 보안 자격
- 15. SOAP 기반 Amazon S3 클라이언트
- 16. 적절한 Amazon AWS S3 사용
- 17. Amazon S3에서 미리보기 이미지를 생성하는 방법은 무엇입니까?
- 18. 프로그래밍 방식으로 Amazon S3 버킷에 PUT을 삽입 할 수 있지만 삭제하지 않을 수 있습니다.
- 19. Amazon S3 키의 특수 문자는 무엇입니까?
- 20. STL C++ 문자열을 읽고 쓰는 방법은 무엇입니까?
- 21. webrick에 대한 쿼리 문자열을 쓰는 방법은 무엇입니까?
- 22. 전체 문자열을 파일에 쓰는 방법은 무엇입니까?
- 23. Android에서 S3 (Amazon Simple Storage Service) 사용
- 24. Amazon S3 Cloudfront에서 동적 비트 전송률을 전환하는 방법은 무엇입니까?
- 25. android를 사용하여 Amazon s3 webservice에서 이미지를 업로드하는 방법은 무엇입니까?
- 26. POST를 통해 Amazon S3 버킷 하위 폴더에 파일을 업로드하는 방법은 무엇입니까?
- 27. Amazon S3 서비스에서 객체의 대역폭을 모니터링하려면 어떻게합니까?
- 28. Amazon S3 누락 된 파일
- 29. php amazon s3 버킷 생성
- 30. amazon s3 버킷의 가상 호스팅
질문에 자세한 내용이 있으면 더 많은 도움을 얻을 것을 제안합니다. 어떤 언어로 쓰고 있는지, 어떤 라이브러리가 있으면 S3와 상호 작용하는지 등. – RickMeasham