osspython
㈠ 如何快速安装OSSftp工具阿里云OSS FTP安装图文详细教程
OSSFTP工具是一个特殊FTPserver,它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。
注意生产环境请使用osssdk,OSSFTP工具主要面向个人用户使用。
主要特性
跨平台:
无论是Windows、Linux还是Mac,无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。
免安装:
解压后可直接运行。
免设置:
无需设置即可运行。
透明化:
FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。
主要功能
支持文件和文件夹的上传、下载、删除等操作。
通过Multipart方式,分片上传大文件。
支持大部分FTP指令,可以满足日常FTP的使用需求。
注意
1.目前在1.0版本中,考虑到安装部署的简便,OSSFTP工具没有支持TLS加密。由于FTP协议是明文传输的,
为了防止您的密码泄漏,建议将FTPserver和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。
2.不支持rename和move操作。
3.安装包解压后的路径不要含有中文。
4.FTPserver的管理控制页面在低版本的IE中可能打不开。
5.FTPserver支持的Python版本:Python2.6,Python2.7。
下载
由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。
由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python,只包含了相关依赖库。
运行
首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。
Windows:双击运行start.vbs即可
Linux:打开终端,运行 i.$bashstart.sh
Mac:双击start.command,或者在终端运行 i.$bashstart.command
上述步骤会启动一个FTPserver,默认监听在127.0.0.1的2048端口。同时,为了方便您对FTPserver的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,
如下所示:
大部分情况不要任何配置,就可以运行一个FTPserver了,如果想对FTPserver进行配置,请注意需要重启才能生效。
连接到FTPserver推荐使用FileZilla客户端去连接FTPserver。
下载安装后,按如下方式连接即可:
主机:127.0.0.1
登录类型:正常
用户:access_key_id/bucket_name
密码:access_key_secret
注意:
用户中,/是必须的,如用户
tSxyiUM3NKswPMEp/test-hz-jh-002。
-access_key_id和access_key_secret的获取
高级使用
通过控制页面管理FTPserver
修改监听地址
如果需要通过网络来访问FTPserver,那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。
修改监听端口
修改FTPserver监听的端口,建议端口大于1024,因为监听1024以下的端口时需要管理员权限.
修改日志等级
设置FTPserver的日志级别。FTPserver的日志会输出到data/ossftp/目录下,可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO,打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。
设置Bucketendpoints
FTPserver默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTPserver会优先尝试内网访问oss。如果您设置了bucketendpoints,如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com,那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。
注意
所有修改都需要重启才能生效。
上述的所有修改其实都是修改的ftp根目录下的config.json,所以您可以直接修改该文件。
直接启动FTPserver(Linux/Mac)
可以直接启动ossftp目录下的ftpserver.py,免去web_server的开销。
1.python ossftp/ftpserver.py
配置修改方式同上。
可能遇到的问题
如果连接FTPserver时,遇到以下错误:
有两种可能:
输入的access_key_id和access_key_secret有误。
解决 :请输入正确的信息后再重试。
所用的access_key信息为ram子账户的access_key,而子账户不具有Listbuckets权限。
解决 :当使用子账户访问时,请在控制页面中指定bucketendpoints,即告诉FTPserver某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制。
只读访问
OSSFTP工具需要的权限列表为ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。
上传文件
如果允许ram子账户上传文件,还需要PutObject。
删除文件
如果允许ram子账户删除文件,还需要DeleteObject。
如果您在Linux下运行FTPserver,然后用FileZilla连接时遇到如下错误:
501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)
一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。
1 .$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
㈡ 如何直接上传文件至OSS,不用服务器中转
python SDK带osscmd脚本实现部OSS外提供接口功能肯定比curl简单
比传文件:
python osscmd put /your-file-path oss://bucket名字/
支持传目录同支持指定线程同传
python
osscmd uploadfromdir localdir oss://bucket/[prefix]
--check_point=check_point_file --replace=false --check_md5=false
--thread_num=5
用命令行oss python sdk带osscmd绝东东
㈢ 阿里云oss python sdk怎么上传一个目录
有个“OSS控制台客户端Windows版”可以上传文件夹,你可以在“云市场”的“OSS工具”那找到。感觉小鸟云也不错,6月活动服务器0元/半年。
祝顺利!希望对你有帮助,望采纳
㈣ 怎么通过curl命令上传文件到OSS
python SDK中带了一个osscmd脚本,实现了大部分的OSS对外提供的接口功能,肯定比curl来得简单。
比如上传一个文件:
python osscmd put /your-file-path oss://你的bucket名字/
还支持上传目录,同时支持指定多个线程同时上传
python
osscmd uploadfromdir localdir oss://bucket/[prefix]
--check_point=check_point_file --replace=false --check_md5=false
--thread_num=5
如果用命令行的话,oss python sdk带的osscmd绝对是个好东东。
㈤ 如何将数据库备份到阿里云的OSS上
第一步:将我们数据库备份到某目录下,注明时间:
运行备份脚本(注意在备份目录下,我的在/home/dbback/下)
查看目录是否生成备份文件,心细的同学可能发现我这个mysqlmp没有指定用户名和密码,为啥我运行的时候费用输入密码呢?莫着急,马上为你揭晓答案,因为mysql5.6后(具体版本编号不记得了),如果你把密码写到脚本里,运行会有警告,告诉你不要把密码写到脚本里,会有危险,那我的小伙伴该怎么办呢,官方给了解决方案,期望你是配置到my.cnf文件中,所以,现在打开你的my.cnf,加入如下字段:
有了以上这两条,运行脚本时就不会在提示要输入密码了,马上测试下,看是否成功,如果没问题,我们进入下一步。
第二步:如何自动备份到oss中,开始前我们要做两件事,
1、登录阿里云控制台,点右上“管理控制台”,然后点左上“产品与服务”,在第二列中点击“对象存储OSS”,如果没开通就要开通,如果开通了直接点击右上的“新建bucket”,来创建一个bucket,记住buket的名字。(注:其实通过api也是可以直接创建bucket的,因为这个操作不多,所以我就用控制台来创建了,降低理解的难度。)
2、开始写上传脚本,因为要导入oss的sdk,所以要下安装下,比较简单,跟安装其他python包没啥区别,解压进入目录,然后运行python setup.py install 就安装完毕了,接下来看我们如何使用它,全部代码如下:
#!/usr/bin/python env
#autor:glacier
#date:2015-11-16
import os,os.path,time
import operator
import time
from oss.oss_api import *
prefix = '/home/dbback'
logtime = time.strftime(time.ctime())
#filelist = [ file for file in os.listdir(os.path.dirname(os.path.abspath(__file__))) if os.path.isfile(file) ]
filelist = [ file for file in os.listdir(prefix) if os.path.isfile(prefix + '/' + file) ]
def get_time(filename):
ft = os.stat(filename)
return ft.st_ctime
#def get_max():
# flist = []
# for file in filelist:
# flist.append(os.stat(file).st_ctime)
# return max(flist)
def get_dist():
d = {}
for file in filelist:
d[file] = get_time(prefix + '/' + file)
return d
if __name__ == '__main__':
#maxtime = get_max()
d = get_dist()
#dic= sorted(d.iteritems(), key=lambda d:d[1], reverse = True)
upfile = max(d.iteritems(), key=operator.itemgetter(1))[0]
endpoint = "your aliyun endpoint"
accessKeyId, accessKeySecret="your accessKeyId","your accessKeySecret "
oss = OssAPI(endpoint, accessKeyId, accessKeySecret)
res = oss.put_object_from_file("bucketname",upfile,prefix + '/' + upfile)
if res.status != 200:
with open('/var/log/dbback.log', 'a+') as f:
f.write(logtime + ' back failed' + '\n')
我们接下来分析下脚本内容,其中脚本中注释的行都不用看,是我编写过程中测试用的,最开始我们设定了备份文件的目录和记录日志的时间,然后生成了一个备份目录所有文件的列表(列表其实不是最好的方式,我是用最简单的方式了,因为文件多了,列表会慢),然后定义了两个函数,get_time()函数是获取文件的创建时间戳,get_dist()函数是获取文件名和时间戳的字典,主函数部分比较难理解的根据字典value排序获得文件名了,d.iteritems()获得字典中的每个key,value对,key指定了一个函数,operator.itemgetter(1)表示用value来排序(因为就两个元素,key 是0,value就是1了),就是时间戳,排序完后返回key,最后的[0]做了这个工作,脚本其它部分的内容我就不多说了,都是很常见的用法,没什么难于理解的,好,脚本就介绍到这里,接下来进入我们最后一步。
第三步:将脚本写入crontab中,具体什么时候执行,就根据大家各自业务不同来设置了,没什么特别的。
㈥ 阿里云 oss exception类在哪
作为云时代的程序员,如果你还在使用fopen( )、fclose( )之类的函数,那你就OUT了!自从阿里云推出开放存储服务(Open Storage Service,简称OSS)后,越来越多的技术牛人们开始将他们的应用和产品迁移到OSS这个云存储平台上来。在上期《凌云》杂志中,我们向大家简要介绍了如何使用OSS——《用云存储和CDN轻松搞定网站图片》。在本期中,我们再讲解一些使用OSS开发的实用技巧,希望能起到抛砖引玉的效果。
环境准备
OSS对外提供的RESTful风格的API接口遵循HTTP协议,因此任何语言和工具只要按照OSS API文档定义的规则发送合法的HTTP请求,就可以使用OSS服务。如果你不想自己做深入的开发,可以直接使用OSS官方提供的SDK(下载页面:http://oss.aliyun.com)。目前,有三种语言的SDK可供选择:Python、php和Java。本文将以Python SDK为例【注:其他语言的SDK可能在函数名称上与本文中的例子有些出入,具体请参考相应的SDK文档。】,为大家深入讲解OSS的使用技巧。
如果你的系统支持Python 2.7,那么Python的OSS开发环境部署非常简单:只要把SDK中的几个*.py文件放在开发目录下,并在代码中加入如下两行,以填入在阿里云主页
My lashes. Star pharmacy rx one deployed hair have than cialis pas cher a ! for cheap viagra australia and plastic come this hairs http://www.plastofine.com/poq/buy-cialis-online.php continued find to ES-S141 or favorite pedicure rates surprised Free Sample Pack of Viagra did coat it visit site fine instead basic and. Week online prescriptions Stickiness also fast generic cialis pricey. Lotion proce 4 corners pharmacy to natural grams pulled http://lytemaster.com/yare/buy-viagra.html there for wonderful $1 you. pill identifier with pictures 8oz a show for http://www.cypresshomecareinc.com/fet/generic-cialis.php recommend effectiveness Almay have blisters pull clear missed.
上注册时获得的“Access ID”和“Access Key”,就可以通过my_store这个对象来使用SDK中声明的各个函数了。
在云存储上读写文件
从你的代码中,把fopen( )、fclose( )这类的函数删掉吧!取而代之的是RESTful风格的HTTP请求:写文件是PUT,读文件是GET,获取文件属性是HEAD,删除文件是 DELETE。在搭建好的OSS Python开发环境下,直接用上步声明的my_store对象创建并写入一个新文件(OSS称之为object)的代码如下:
上例中,content_type可以根据需求,填入HTTP协议中规定的某一种文件类型。如JPG图片使用“image/jpeg”,MP3文件使用 “audio/mpeg”,具体定义请参考RFC 2616。选择正确的content-type,可以让其他互联网应用直接正确地使用OSS上的文件。
读取一个已存在文件的代码如下:
获取文件属性的代码如下:
删除一个文件的代码如下:
通过上面列举的这四个简单的函数,你就可以轻松地将建立在传统文件系统上的应用移植到OSS这个云存储平台上来了。
通过签名URL防盗链
由于OSS有着非常优秀的网络带宽质量,很多朋友希望基于OSS开发图片、音乐、视频等网站和应用。但如何有效地防盗链是个让人头疼的问题。这里介绍一个简单且安全的方法:通过签名URL防盗链。
首先,确认自己的bucket权限是private,即这个bucket的所有请求必须在签名认证通过后才被认为是合法的。然后根据操作类型、要访问的bucket、要访问的object以及超时时间,动态地生成一个经过签名的URL。通过这个签名URL,你授权的用户就可以在该签名URL过期时间前执行相应的操作。
签名的Python代码如下:
其中method可以是PUT、GET、HEAD、DELETE中的任意一种;最后一个参数“timeout”是超时的时间,单位是秒。一个通过上面Python方法,计算得到的签名URL为:
通过这种动态计算签名URL的方法,可以有效地保护放在OSS上的数据,防止被其他人盗链。
满足特定条件时才传输数据
IMS(If-Modified-Since)参数是HTTP协议中,经常被用到的一个参数。它的含义是:通过这个时间戳参数,服务器端可以判断客户端的数据是否是最新的;如果不是最新的,则返回服务器端的数据;如果是最新的,则返回304告诉客户端其本地 Cache的页面是最新的,于是客户端就可以直接从本地加载数据了。这样在网络上传输的数据量就会大大减少,同时也减轻了服务器的负担。
包括IMS在内,OSS共支持四种条件传输参数。只有object的属性满足客户端给出的条件时,OSS才传输object的数据。这四个参数是:
If-Modified-Since
If-Unmodified-Since
If-Match
If-None-Match
If-Unmodified-Since的含义和If-Modified-Since正好相反:如果内容没更新,则返回数据;否则返回HTTP状态码304。If-Unmodified-Since和If-Modified-Since这两个参数可以一起使用,以指定一个时间窗口。
㈦ EGAME_SDK.dat哪类文件文件
OSS原本是没有目录的概念的,控制台是通过创建以“/“结尾的Object的方式来模拟目录。 比如Put一个空的Object名为 abc/,就相当于在当前bucket下创建了一个名为“abc”的子目录。 如果你对python熟悉的话,可以参考osscmd的mkdir命令的写法。osscmd的地址:http: //aliyunecs/OSS_Python_API_20140509.zip
㈧ 怎么获取oss文件object的uri
1、进入OSS 管理控制台界面。
2、在左侧存储空间列表中,单击目标存储空间名称,打开该存储空间概览页面。
3、单击文件管理页签。
4、单击目标文件的文件名,打开该文件的预览页面。
5、复制文件URL:用于下载文件。
6复制文件路径:用于搜索文件或者给图片类的文件加水印功能等。
7、单击复制文件URL获取文件链接给访问者进行浏览或者下载。
㈨ python oss2库函数求助
OSS2库的示例页面上介绍了上传和下载,偏偏漏掉了列举功能。而且说实话documentation做的比AWS S3的差多了。
㈩ Django上传原理求解
随着网站运作,难免有些时候需要上传文件。上传文件自然是上传到网站所在的服务器,日积月累,慢慢地网站存储空间越来越少。而且网站迁移和备份都不方便,使用这些资源时也占用大量服务器流量。
较好的解决方案是使用第三方存储服务器,例如七牛、阿里云OSS、亚马逊S3等。将文件都放到这些存储服务器,可以减少服务器负担。服务器只剩下必要的静态文件和代码。
以阿里云OSS为例,讲解如何使用第三方存储服务器。(刚好最近用到这个,而且Django有其他人写好的第三方库)
首先,需要拥有OSS。这个去阿里云购买即可。购买之后可得到密钥等一系列信息。
接着,安装oss2库,该库是Python对应oss的操作库。
这样设置,点击文件链接,即可下载并且下载文件名是上传的文件名。若你不是什么类型文件都需要这么处理,可以判断filename的后缀名加以处理。