01. Java
02. git
03. Database
04. Jsp [Server]
05. HTML,CSS
07. JS
06. 미니프로젝트-2W
08. SpringFramework , SrpingBoot
19. 중간프로젝트 (1M)
10. Linux 명령어
11. AWS(v)
12. React JS [Front-end]
13. DevOps - Docker
14. App - Android
15. 최종프로젝트 (1M)
- 키는 파일의 전체경로 의미
- 키는 접두사 + 객체이름으로 만들어짐
- 대문자 사용 불가
- 밑줄 사용 불가
- 길이 3~63 사이
- IP형태 불가
- 반드시 소문자 or 숫자로 시작
- 문자와 숫자 하이픈만 사용
- 속성탭에 버전관리 활성화
CORS란 동일한 출처(서버)에서만 데이터를 쉐어링 할 수 있는 기본 브라우저 보안 정책
CORS정책 허용 방법
- Request문서의 Header에 CORS Header를 승인하는 문장이 들어가면 됨
- 중요한점은
Response서버에서 CORS를 허용해야 함
- 예시
Access-Control-Allow-Origin: 요청을 허용할 서버명 or * Access-Control-Allow-Method: GET, POST, PUT, DELETE
//버킷목록확인하기> public void getBucketList() { //자격증명 S3Client s3 = S3Client.builder() .region(Region.AP_NORTHEAST_2) .credenti> alsProvider(ProfileCredentialsProvider.create()) //유저폴더/.aws/credentails파일을 읽음 .build(); //버킷목록 ListBucketsResponse response = s3.listBuckets(); List<Bucket> bucketList = response.buckets(); for (Bucket bucket: bucketList) { System.out.println("Bucket name "+bucket.name()); } }
//버킷에 업로드하기 public void uploadBucket(MultipartFile file) { String filename = file.getOriginalFilename(); System.out.println( "한글: " + filename); //자격증명 S3Client s3 = S3Client.builder() .region(Region.AP_NORTHEAST_2) .credentialsProvider(ProfileCredentialsProvider.create()) //유저폴더/.aws/credentails파일을 읽음 .build(); String bucketName = "sws-project"; //버킷명
try { Map<String, String> metadata = new HashMap<>(); //파일의 대한 정보 metadata.put("author", "Mary Doe"); metadata.put("version", "1.0.0.0"); PutObjectRequest putOb = PutObjectRequest.builder() .bucket(bucketName) //버킷명 .key(filename) //올릴파일명 .metadata(metadata) //메타데이터 .contentType(file.getContentType() ) //데이터에 대한 컨텐츠타입 (지정하지 않으면, 기본타입으로 지정됨) .build(); s3.putObject(putOb, RequestBody.fromBytes( file.getBytes() ) ); System.out.println("Successfully placed " + filename + " into bucket " + bucketName); } catch (Exception e) { System.err.println(e.getMessage()); //System.exit(1); }
}
public void list_bucket_objects() { //자격증명 S3Client s3 = S3Client.builder() .region(Region.AP_NORTHEAST_2) .credentialsProvider(ProfileCredentialsProvider.create()) //유저폴더/.aws/credentails파일을 읽음 .build(); String bucketName = "sws-project"; try { ListObjectsV2Request listReq = ListObjectsV2Request.builder() .bucket(bucketName) .maxKeys(1) .build(); ListObjectsV2Iterable listRes = s3.listObjectsV2Paginator(listReq); for(S3Object content : listRes.contents() ) { System.out.println("Key: " + content.key() + " size = " + content.size()); } } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); } }
public void delete_bucket_object(List<String> bucket_obj_name){ //자격증명 S3Client s3 = S3Client.builder() .region(Region.AP_NORTHEAST_2) .credentialsProvider(ProfileCredentialsProvider.create()) //유저폴더/.aws/credentails파일을 읽음 .build(); String bucketName = "sws-project"; List<ObjectIdentifier> keys = new ArrayList<>(); ObjectIdentifier objectId; for (int i = 0; i < bucket_obj_name.size(); i++) { String keyName = bucket_obj_name.get(i); objectId = ObjectIdentifier.builder() .key(keyName) .build(); keys.add(objectId); } System.out.println(keys.size() + " objects successfully created."); // Delete multiple objects in one request. Delete del = Delete.builder() .objects(keys) .build(); try { DeleteObjectsRequest multiObjectDeleteRequest = DeleteObjectsRequest.builder() .bucket(bucketName) .delete(del) .build(); s3.deleteObjects(multiObjectDeleteRequest); System.out.println("Multiple objects are deleted!"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }