728x90
반응형
AWS Amplify 설치
AWS 계정이 있어야 하고 다음 것들이 미리 설치되어 있어야 한다
npm install -g @aws-amplify/cli
amplify configure
창이 열리면서 AWS에 로그인한다
로그인 끝나면 다시 돌아와서 이후의 일을 하자
region 선택 시 앞으로의 모든 것들의 region과 동일한 것으로 선택하자...
먼저 IAM user 생성 과정을 겪게 된다
필수로 거쳐야 하는 것들
마지막에 나오는 secret access key와 access key ID는 어딘가에 꼭 메모해두자!!
바로 다음에 나오는 로그인 과정에 필요
새 ionic app 생성하기
npm install -g ionic
ionic start illbedie sidemenu --type=angular
cd illbedie
npm start
백엔드 초기 설정하기
앞으로 나오는 이름 설정은
영어 소문자만 써서 하자...
제안해주는 이름은 그대로 하는 게 상책이다...
amplify init
+) amplify 라이브러리 설치하기
npm install aws-amplify @aws-amplify/ui-angular@1.x.x
Amplify Storage 사용하기
amplify add storage
현재까지 생성한 자원들을 cloud에 올리기
amplify push
각 자원들의 상태를 확인하고 싶다면...
amplify status
내가 만든 웹에 amplify 설정하기
npm install -S aws-amplify
/src/main.ts에 다음 코드 추가하기
import Amplify, { Storage } from 'aws-amplify';
import awsconfig from './aws-exports';
Amplify.configure(awsconfig);
'.aws-amplify' 인식을 위해 node 설치하기
npm install --save-dev @types/node
tsconfig.json 에 추가
"typeRoots": ["node_modules/@types"]
tsconfig.app.json의 types에 "node" 명시하기
Angular 6 이상일 경우 polifills.ts에 아래 코드 추가
(window as any).global = window;
(window as any).process = {
env: { DEBUG: undefined },
};
이미지 업로드 구현
이미지 업로드 페이지의
~.page.ts에 적기
import { Component, OnInit } from '@angular/core';
import { Storage } from 'aws-amplify'; // 추가
@Component({
selector: 'app-drone-upload',
templateUrl: './drone-upload.page.html',
styleUrls: ['./drone-upload.page.scss'],
})
export class DroneUploadPage implements OnInit {
private _Img: File; // 추가
constructor() {}
ngOnInit() {}
// 추가
imgSelectHandler(event) { // 사용자가 선택한 이미지를 _Img 변수에 담음
console.log(event);
this._Img = event.target.files[0];
}
// 추가
uploadImg() { // _Img 변수에 담은 파일을 가져와서 AWS S3 bucket에 업로드
console.log(this._Img);
const result = Storage.put(this._Img.name, this._Img);
}
}
<ion-header>
<ion-toolbar>
<ion-title>image-upload</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-item>
<ion-button expand="full" (click)="f.click()">
<ion-icon name="camera"></ion-icon>
Select File
</ion-button>
<input
class="ion-hide"
#f
type="file"
(change)="imgSelectHandler($event)" // 핸들러 지정
id="file-input"
accept="image"
/>
</ion-item>
<br />
// 업로드 버튼 지정
<ion-button expand="block" (click)="uploadImg()">Upload</ion-button>
</ion-content>
결과
참고
728x90
반응형
'Web > ionic' 카테고리의 다른 글
[MAC] ionic을 위한 Android 설치 (0) | 2021.12.29 |
---|---|
[Angular] ionic Storage 라이브러리 사용하기 (0) | 2021.11.24 |
[Window] ionic 설치 (0) | 2021.11.24 |
Window Powershell 보안 오류 (0) | 2021.11.23 |