Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶属性错误:';unicode';对象没有属性';告诉';_Python_Amazon Web Services_Amazon S3_Flask_Flask Wtforms - Fatal编程技术网

Python 烧瓶属性错误:';unicode';对象没有属性';告诉';

Python 烧瓶属性错误:';unicode';对象没有属性';告诉';,python,amazon-web-services,amazon-s3,flask,flask-wtforms,Python,Amazon Web Services,Amazon S3,Flask,Flask Wtforms,我正在尝试使用Flask应用程序将图像上传到AmazonS3,并将密钥和元数据存储在Redis db中。这是我的应用程序: def s3upload(image, acl='public-read'): key = app.config['S3_KEY'] secret = app.config['S3_SECRET'] bucket = app.config['S3_BUCKET'] conn = S3Connection(key, secret) m

我正在尝试使用Flask应用程序将图像上传到AmazonS3,并将密钥和元数据存储在Redis db中。这是我的应用程序:

def s3upload(image, acl='public-read'):
    key = app.config['S3_KEY']
    secret = app.config['S3_SECRET']
    bucket = app.config['S3_BUCKET']

    conn = S3Connection(key, secret)
    mybucket = conn.get_bucket(bucket)

    r = redis.StrictRedis(connection_pool = pool)
    iid = r.incr('image')
    now = time.time()
    r.zadd('image:created_on', now, iid)


    k = Key(mybucket)
    k.key = iid
    k.set_contents_from_file(image)

    return iid

@app.route('/', methods = ['GET', 'POST'])
def index():
    form = ImageForm(request.form)
    print 'CHECKING REQUEST'
    if form.validate_on_submit():
        print 'VALID REQUEST'
        image = form.image.data
        s3upload(image)
    else:
        image = None

    r = redis.StrictRedis(connection_pool = pool)
    last_ten = r.zrange('image:created_on', 0, 9)
    print last_ten
    images = []

    key = app.config['S3_KEY']
    secret = app.config['S3_SECRET']
    bucket = app.config['S3_BUCKET']

    conn = S3Connection(key, secret)
    mybucket = conn.get_bucket(bucket)  


    for image in last_ten:

        images.append(mybucket.get_key(image, validate = False))


    return render_template('index.html', form=form, images=images)
页面加载成功,但当我尝试上载图像时,返回错误:

AttributeError:“unicode”对象在
设置文件中的内容时没有属性“tell”

失败的行是:
spos=fp.tell()


感谢您的帮助。

k.set\u contents\u from\u file
需要使用名为
tell()
的方法的类似文件的对象,您可以传递一个unicode字符串


您需要改为使用。

我已针对由此产生的问题提出了一个新问题,非常感谢您的意见。