Python 烧瓶属性错误:';unicode';对象没有属性';告诉';
我正在尝试使用Flask应用程序将图像上传到AmazonS3,并将密钥和元数据存储在Redis db中。这是我的应用程序: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
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字符串
您需要改为使用。我已针对由此产生的问题提出了一个新问题,非常感谢您的意见。