일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- terms
- Class
- sourcetree
- intellij 연동
- install
- Android
- gradle
- 특징
- 문법
- java
- Subversion
- TortoiseSVN
- error
- svn
- 생성자
- IntelliJ IDEA Community
- Checkout
- SSL
- 상속
- IntelliJ
- VCS
- commit
- syntax
- Branch
- git
- cherrypick
- Android Studio
- constructor
- 자바
- 캡슐화
Archives
- Today
- Total
Jay's Developer Note
[Android] AWS S3 Pre-Signed URL 로 Streaming 하기(Util 소스 코드 有) 본문
728x90
AWS S3 Pre-Signed URL 로 Streaming 하기
프로젝트 중 난관에 봉착한 사건이 있었다.
S3 에 있는 영상을 스트리밍 해야 하는데 그 Bucket 이 private 으로 설정되어 있어서 public 한 URL 접근이 힘들다는 것이었다.
기존 Util 을 사용한다면 무조건 다운로드를 한 후 재생을 해줘야 하는,, 그래서 스트리밍이 불가능한 사건이었다.
구글링으로 주섬주섬 모아서 private Bucket 에도 유효기간이 있는 public URL 을 생성할 수 있는 코드를 완성시켰다.
가져들 가서 유용하게 쓰이길 바란다..
기타 S3 설정은 이전 글을 참고하면 된다.
https://fall-in-it.tistory.com/46
Android 설정
Dependency 추가(app 단의 build.gradle)
implementation 'com.amazonaws:aws-android-sdk-s3:2.13.5'
동일하게 추가해준다.
소스코드(그 외는 이전 게시글 참조)
/**
* S3 Public URL Generator about Private Bucket
*
* @param bucketName S3 버킷 이름
* @param key S3 저장된 key 값
*/
public URL getPublicUrl(String bucketName, String key) {
// Expire time setting(ms)
Date expr = new Date();
// 1 hour
expr.setTime(expr.getTime() + (1000 * 60 * 60));
// URL 생성 요청자
GeneratePresignedUrlRequest gpur = new GeneratePresignedUrlRequest(
bucketName,
key
).withMethod(HttpMethod.GET)
.withExpiration(expr);
AWSCredentials awsCredentials = new BasicAWSCredentials(
accessKey, secretKey
);
AmazonS3Client s3Client = new AmazonS3Client(
awsCredentials, region
);
// Public URL Return
return s3Client.generatePresignedUrl(gpur);
}
사용법
vvMain.setVideoURI(Uri.parse(
S3Util.getInstance()
.setKeys(accessKey, secretKey)
.setRegion(Regions.AP_NORTHEAST_2)
.getPublicUrl(bucketName, key).toString()
));
이 코드는 비단 스트리밍 뿐만 아니라 다른 곳에서도 유용하게 쓰일 법하다..
728x90
'Android' 카테고리의 다른 글
[Android] Jetpack Compose에 쓰인 Kotlin 특징 - 1 (2) | 2023.11.27 |
---|---|
[Android] Jetpack Compose 장점 (0) | 2023.11.26 |
[Android] AWS S3 Download 하기(Util 소스 코드 有) (2) | 2022.10.27 |
[Android] AWS S3 Upload 하기(Util 소스 코드 有) (2) | 2022.05.30 |
[Android] 다국어 지원 하기(feat. strings.xml) (0) | 2022.05.20 |