资讯专栏INFORMATION COLUMN

SAE 中使用 qiniu SDK for Python

VEIGHTZ / 641人阅读

摘要:描述实现生成的业务接口产生一系列问题在部署的过程中遇到问题问题引用包在中创建应用的过程中默认是支出的,无需安装。

描述

SAE(SinaAppEngine) + webpy + qiniu sdk 实现生成token的业务接口 产生一系列问题

在部署的过程中遇到问题 问题1 引用qiniu for python 包

在SAE 中创建python web应用的过程中默认是支出webpy 的,无需安装。但是遇到qiniu sdk for python 就需要安装了。

在index.wsgi 的同级目录下创建 vendor目录或者其他名字$mkdir vendor

然后用pip命令将qiniu 安装在vendor目录下$pip install -t vendor qiniu

修改index.wsgi 文件头添加如下

import sae
app_root = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(app_root, "vendor"))

同时以上方法也是SAE中加载其他包的方式之一

问题2 IO 错误

上传index.wsgi 文件,发起请求,发现依然不行,此时认真观察SAE中app 日志将发现如下IO操作错误

File "/data1/www/htdocs/421/xetapp/1/vendor/qiniu/zone.py", line 22, in Zone
    def __init__(self, up_host=None, up_host_backup=None, io_host=None, host_cache={}, scheme="http", home_dir=tempfile.gettempdir()):
  File "/usr/local/sae/python/lib/python2.7/tempfile.py", line 269, in gettempdir
    tempdir = _get_default_tempdir()
  File "/usr/local/sae/python/lib/python2.7/tempfile.py", line 212, in _get_default_tempdir
    ("No usable temporary directory found in %s" % dirlist))
IOError: [Errno 2] No usable temporary directory found in ["/tmp", "/var/tmp", "/usr/tmp", "/data1/www/htdocs/421/xetapp/1"]  yq26 

注: 我发的请求是POST

错误日志提示的非常明白,zone.py 文件中的__inint__ 方法的tempfile.gettempdir() 在请求/tmp 、/var/tmp等,目录,然而SAE中并没有这些目录

将home_dir=tempfile.gettempdir() 改为 home_dir=sae.core.get_tmp_dir() 使用SAE中的tmpdir

不要忘记在zone.py 文件头加入import aes 否则会报错

同理在qiniu/services/storage/upload_progress_recorder.py 中的record_folder=tempfile.gettempdir() 改为 record_folder=sae.core.get_tmp_dir()

不要忘记在upload_progress_recorder.py 文件头加入import aes 否则会报错

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45529.html

相关文章

  • 浅析前端上传

    摘要:项目上也用到很多上传文件的地方,七牛云,阿里云,讯飞上传都接触过,所以在这里做一个记录,总结一下前端上传的几种方式。类型的文件名七牛云上传浅析是一个基于七牛开发的前端。 showImg(https://segmentfault.com/img/bVbvibu?w=1920&h=1080); 图片,音频,视频等等这几种常见的资源类型,如果需要从前端上传到服务端,有几种方式呢?不妨回顾一下...

    terro 评论0 收藏0
  • Deep learning:四十二(Denoise Autoencoder简单理解)

    摘要:本篇博文主要是根据的那篇文章简单介绍下,然后通过个简单的实验来说明实际编程中该怎样应用。当然作者也从数学上给出了一定的解释。自顶向下的生成模型观点的解释。信息论观点的解释。 前言:   当采用无监督的方法分层预训练深度网络的权值时,为了学习到较鲁棒的特征,可以在网络的可视层(即数据的输入层)引入随机噪声,这种方法称为Denoise Autoencoder(简称dAE),由Bengio在08年...

    gotham 评论0 收藏0
  • 七牛云存储官方接口PHP版本

    摘要:基于七牛云存储官方构建。使用此构建您的网络应用程序,能让您以非常便捷地方式将数据安全地存储到七牛云存储上。应用接入获取和要接入七牛云存储,您需要拥有一对有效的和用来进行签名认证。文件下载七牛云存储上的资源下载分为公有资源下载和私有资源下载。 此 SDK 适用于 PHP 5.1.0 及其以上版本。基于 七牛云存储官方API 构建。使用此 SDK 构建您的网络应用程序,能让您以非常便捷地方...

    wwq0327 评论0 收藏0
  • 更好用的七牛云存储 JS SDK,因为官方的太难用

    摘要:目前可能是七牛浏览器文件上传的最好实现。任务拦截器拦截任务返回,任务将会从任务队列中剔除,不会被上传中断任务,返回,任务队列将会在这里中断,不会执行上传操作。请上传小于的文件你可以添加多个任务拦截器选择上传文件确定后该生命周期函数会被回调。 qiniu4js qiniu4js目前可能是七牛JavaScript浏览器文件上传的最好实现。 使用TypeScript编写,不依赖任何三方库,纯...

    iKcamp 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<