示例#1
0
def signup():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        email = request.form['email']

        db = DynamoDB(region=cfg['region'])
        user_table = cfg['db_tbl']['user']

        if not db._isTable_exists(user_table):
            db.create_table(table_name=user_table,
                            attr_dict={'hash_name': "username"})

        user_info = {
            'username': username.strip(),
            'password': password.strip(),
            'email': email.strip()
        }

        db.insert_item(user_table, user_info)
        return redirect(url_for('login'))

    return render_template('signup.html')
示例#2
0
def upload_file(user):
    if request.method == 'POST':
        if 'image' not in request.files:
            flash('No file part')
            return redirect(url_for('home', user=session['username']))

        img_file = request.files['image']

        if img_file.filename == '':
            flash('No selected file')
            return redirect(request.url)

        elif not allowed_file(img_file.filename):
            flash('Wrong format. Not in ' +
                  ', '.join(list(ALLOWED_EXTENSIONS)))
            return redirect(url_for('home', user=user))
        else:
            local_img_path = os.path.join(app.config['UPLOAD_FOLDER'],
                                          secure_filename(img_file.filename))
            img_file.save(local_img_path)

            if os.path.exists(local_img_path):
                logger.debug('Image saved. %s', local_img_path)

                try:
                    filename = secure_filename(img_file.filename)
                    session = S3(aws_key=cfg['aws_key'],
                                 aws_secret=cfg['aws_secret'],
                                 region=cfg['region'])
                    url = session.upload_file_to_s3(local_img_path,
                                                    cfg['bucket'], filename)

                    db = DynamoDB(region=cfg['region'])
                    photo_table = cfg['db_tbl']['album']

                    if not db._isTable_exists(photo_table):
                        db.create_table(table_name=photo_table,
                                        attr_dict={
                                            'hash_name': 'owner',
                                            'range_name': 'group'
                                        })
                    if url:
                        db.insert_item(
                            photo_table, {
                                'owner':
                                user,
                                'group':
                                cfg['group']['pub'],
                                'filename':
                                filename,
                                'url':
                                url,
                                'upload_date':
                                datetime.now().date().strftime('%Y-%m-%d'),
                            })

                        flash('Uploading finished.')
                        return redirect(url_for('home', user=user))
                    else:
                        logger.error("URL not returned")
                except Exception as err:
                    logger.error(str(err))

                return redirect(url_for('home', user=user))
            else:
                logger.error('Save to local folder failed')
                flash('Upload failed. Try again')
                return redirect(url_for('home', user=user))
    return redirect(request.url)