김현기

aws rekognition 테스트

......@@ -12,13 +12,13 @@ var bucketName = "kindofyourdogimage";
// s3 버킷의 엔드 포인트
var bucketRegion = "ap-northeast-2";
// AWS Cognito 인증
var IdentityPoolId = "ap-northeast-2:7cba9a17-588b-40d6-8c70-eb8ba4d573be";
var identityPoolId = "ap-northeast-2:7cba9a17-588b-40d6-8c70-eb8ba4d573be";
// AWS의 config 정보를 Update해준다 -> 이용자가 S3 버킷에 접근 가능하다
AWS.config.update({
region:bucketRegion,
credentials:new AWS.CognitoIdentityCredentials({
IdentityPoolId:IdentityPoolId
IdentityPoolId:identityPoolId
})
})
......@@ -28,6 +28,8 @@ var s3 = new AWS.S3({
params: {Bucket: bucketName}
});
const fileName = 'puppy.jpg';
// 파일 업로드
const uploadFile = (fileName) => {
const fileContent = fs.readFileSync(fileName);
......@@ -41,13 +43,55 @@ const uploadFile = (fileName) => {
console.log(`File uploaded successfully. ${data.Location}`);
});
};
uploadFile('public/image/puppy.jpg');
uploadFile(fileName);
// rekognition 객체
const client = new AWS.Rekognition();
const params = {
"Image": {
"S3Object": {
"Bucket": bucketName,
"Name": fileName
}
},
"MaxLabels": 10,
"MinConfidence": 75
}
// 이미지 분석하기
client.detectLabels(params, function(err, response) {
if (err) {
console.log(err, err.stack); // an error occurred
} else {
console.log(`Detected labels for: ${photo}`)
response.Labels.forEach(label => {
console.log(`Label: ${label.Name}`)
console.log(`Confidence: ${label.Confidence}`)
console.log("Instances:")
label.Instances.forEach(instance => {
let box = instance.BoundingBox
console.log(" Bounding box:")
console.log(` Top: ${box.Top}`)
console.log(` Left: ${box.Left}`)
console.log(` Width: ${box.Width}`)
console.log(` Height: ${box.Height}`)
console.log(` Confidence: ${instance.Confidence}`)
})
console.log("Parents:")
label.Parents.forEach(parent => {
console.log(` ${parent.Name}`)
})
console.log("------------")
console.log("")
}) // for response.labels
} // if
});
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
// image업로드 시 해당 route기능 사용
var imageUploadRouter = require('./routes/imageUpload');
var app = express();
......@@ -63,8 +107,6 @@ app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
//이미지 업로드
app.use('/upload', imageUploadRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
......
......@@ -3,7 +3,7 @@
<head>
<!-- **DO THIS**: -->
<!-- Replace SDK_VERSION_NUMBER with the current SDK version number -->
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.283.1.min.js"></script>
<script src="https://sdk.amazonaws.com/js/aws-sdk-SDK_VERSION_NUMBER.js"></script>
<script src="./app.js"></script>
<script>
function getHtml(template) {
......@@ -13,7 +13,7 @@
</script>
</head>
<body>
<h1><%= title %></h1>
<h1>My Photo Albums App</h1>
<div id="app"></div>
</body>
</html>
\ No newline at end of file
......