예제 #1
0
def insert_task_group(result, example_img, session_name):
    if example_img:
        image_name, h, w = storage.upload_img(s3, example_img, 'example/')
    else:
        image_name, h, w = None, 0, 0
    if result['kind'] == 'classification':
        select_list = result['selection_list']
        database.db_insert_taskgroup(db, result['name'], result['choose_group'], result['comment'],
                                     result['kind'], result['is_activate'], image_name, [h, w], session_name,
                                     select_list)
    else:
        database.db_insert_taskgroup(db, result['name'], result['choose_group'], result['comment'],
                                     result['kind'], result['is_activate'], image_name, [h, w], session_name)
예제 #2
0
def insert_task_group(result, example_img, session_name):
    # 이 함수는 task_create 에서만 불리는데 task_create는 login_required 가 들어가 있으므로 session['username']에 값이 반드시 있다.
    if example_img:
        image_name, h, w = storage.upload_img(s3, example_img, 'example/')
    else:
        image_name, h, w = None, 0, 0
    if result['kind'] == 'classification':
        select_list = result['selection_list']
        database.db_insert_taskgroup(db, result['name'], result['choose_group'], result['comment'],
                                     result['kind'], result['is_activate'], image_name, [h, w], session_name,
                                     select_list)
    else:
        database.db_insert_taskgroup(db, result['name'], result['choose_group'], result['comment'],
                                     result['kind'], result['is_activate'], image_name, [h, w], session_name)
예제 #3
0
def Test_New_task():
    # request.values {'group_name': 'A', 'kind': 'ocr', 'comment': '어쩌구'} 각 정보 dataset 에 등록
    # request.files [파일 여러개] -> 이거는 S3 업로드
    if request.method == 'POST':
        # 요 코드는 postman 에서 테스트 용으로 했을 때
        file_list = request.files.getlist('')
        # 요 코드는 실제 name='file_list' 라고 줬을 때 오는것
        # file_list = request.files.getlist('file_list[]')
        if len(file_list) > 0:
            success_count = len(file_list)
            file_fail = []
            file_name = []
            for file in file_list:
                filename, H, W = storage.upload_img(s3, file)

    return "Hello"
예제 #4
0
def img_upload():
    group = database.db_find_group(db)
    result = {'file_num': 0, 'file_success': [], 'file_fail': [], 'image_group': group}
    if request.method == 'POST':
        '''
        input
        upload 에서는 {group: 그룹이름, group_comment: 그룹 설명, gen_user: 만든사람ID} + file_list 를 보내주면 된다.

        해당 정보들을 DB에 저장함

        output
        {file_fail: [업로드 실패한 파일 이름], file_num: 업로드 시도하는 파일 갯수 int, 
        file_success: [업로드 성공한 파일이름], image_group: {이미지그룹이름:그룹설명}}
        '''
        # 이미지 여러장 가져오는 것은 files.getlist 파일 하나만 가져오는 것은 files 만 해주면 된다.
        file_list = request.files.getlist('')
        # request.files [파일 여러개] -> 이거는 S3 에 이미지 파일 여러개 업로드하는 용
        if len(file_list) > 0:
            try:
                group_name = request.values['group']
                group_comment = request.values['group_comment']
                gen_user = session['username']
                count = len(file_list)
                file_fail = []
                file_success = []
                for file in file_list:
                    filename, H, W = storage.upload_img(s3, file)
                    if filename:
                        database.db_insert_dataset(db, filename, group_name, H, W)
                        file_success.append(filename)
                    else:
                        file_fail.append(file.filename)
                if len(file_success) > 0:
                    database.db_insert_group(db, group_name, group_comment, gen_user)
                # 등록에 성공한 그룹 return
                group = database.db_find_group(db)
                result = {'file_num': count, 'file_success': file_success, 'file_fail': file_fail,
                          'image_group': group}
            except KeyError:
                return error_handler('이미지 업로드', '이미지 그룹에 대해서 이미지 그룹명과 설명을 적어주세요')
        else:
            return error_handler('이미지 업로드', '업로드할 이미지 파일이 없습니다.\n확장자를 확인해주세요.')
    return result
예제 #5
0
def img_upload():
    # 이미지를 여러장 업로드하여 이미지 그룹을 만드는 api이다.
    # file_num(총 이미지 개수) file_success(업로드 성공한 파일 이름), file_fail(실패개수)은 사용하지 않지만 추후 사용 가능하다
    group = database.db_find_group(db)
    result = {'file_num': 0, 'file_success': [], 'file_fail': [], 'image_group': group}
    # 이미지 여러장 가져오는 것은 files.getlist 파일 하나만 가져오는 것은 files 만 해주면 된다.
    file_list = request.files.getlist('')
    # request.files [파일 여러개] -> 이거는 S3 에 이미지 파일 여러개 업로드하는 용
    if len(file_list) > 0:
        try:
            group_name = request.values['group']
            group_comment = request.values['group_comment']
            gen_user = session['username']
            count = len(file_list)
            file_fail = []
            file_success = []
            for file in file_list:
                # s3에 파일을 업로드하면 이름이 고유한 값으로 바뀐다.
                filename, H, W = storage.upload_img(s3, file)
                if filename:
                    # 바뀐 이름으로 mondoDB에 이미지 관련 정보 저장
                    database.db_insert_dataset(db, filename, group_name, H, W)
                    file_success.append(filename)
                else:
                    file_fail.append(file.filename)
            if len(file_success) > 0:
                database.db_insert_group(db, group_name, group_comment, gen_user)
            # 등록에 성공한 그룹 return
            group = database.db_find_group(db)
            result = {'file_num': count, 'file_success': file_success, 'file_fail': file_fail,
                      'image_group': group}
            return result
        except KeyError:
            return error_handler('이미지 업로드', '이미지 그룹에 대해서 이미지 그룹명과 설명을 적어주세요')
    else:
        return error_handler('이미지 업로드', '업로드할 이미지 파일이 없습니다.확장자를 확인해주세요.')