上次打包了阿里的云服务,刚发现更新了,很久没更新之后终于更新了,更新日记如下,于是,也更新了此包。未来阿里应该在此方面会比较正式一点,也没有多大必要再更新了,于是修改了接口与其保持一致。
ChangeHistory
===============================================================
0.3.2 - 2013-10-20
* 修复osscmd的uploadfromdir命令中,在中文目录下,上传的object名字被截断的问题。
* 修复oss_util.py中DEBUG被设置成True的情况下无法打印log的问题。
* oss_api.py中增加了设置每次上传和下载大小的接口。
* osscmd增加了--debug=true来打印日志。
* oss_api.py中增加了上传失败时候的重试,最大重试100次。
0.3.1 - 2013-08-02
* 支持跳转。
* 给oss_api.py部分函数增加说明。
0.1.3 - 2013-07-12
* 支持multipart相关操作,osscmd增加multipart相关的接口。
osscmd支持本地目录上传。
osscmd支持将bucket的某一个prefix的object下载到本地的目录。
0.1.0 - 2011-11-15
* 第一次操作支持基本的创建,删除和显示bucket。
支持创建,删除和显示object。
这里就不吐嘈两次更新差了那么久了。 (转载自 Phodal's Blog )
补充下阿里OSS SDK的steup.py缺少的东西。
scripts=[
'oss/osscmd.py',
],
事实 上也就是把SDK中的osscmd复制到oss,命名为osscmd.py。完整的setup.py如下:
#!/usr/bin/env python
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
import os
import sys
import oss.pkg_info
if float("%d.%d" % sys.version_info[:2]) < 2.5 or float("%d.%d" % sys.version_info[:2]) >= 3.0:
sys.stderr.write("Your Python version %d.%d.%d is not supported.\n" % sys.version_info[:3])
sys.stderr.write("osscmd requires Python between 2.4 and 3.0.\n")
sys.exit(1)
source_dir_list = []
package_list = []
data_file_dict = {}
data_file_list = []
for dir in os.listdir(os.getcwd()):
if os.path.exists(os.path.join(dir, '__init__.py')):
package_list.append(dir)
source_dir_list.append(dir)
for source_dir in source_dir_list:
for rootDir, dirs, files in os.walk(source_dir):
for dir in dirs:
dir = os.path.join(rootDir, dir)
if os.path.exists(os.path.join(dir, '__init__.py')):
package_list.append(dir.replace(os.sep, '.'))
for file in files:
file = os.path.join(rootDir, file)
if not file.endswith('.py') and not file.endswith('.pyc') and '.svn' not in file:
if rootDir not in data_file_dict.keys():
data_file_dict[rootDir] = [file]
else:
data_file_dict[rootDir].append(file)
for k, v in data_file_dict.items():
data_file_list.append((k, v))
setup(
name = oss.pkg_info.package,
version = oss.pkg_info.version,
packages=package_list,
data_files=data_file_list,
author = "Phodal.Gmszone",
author_email = "gmszone@gmail.com",
url = oss.pkg_info.url,
license = oss.pkg_info.license,
description = oss.pkg_info.short_description,
long_description = oss.pkg_info.long_description,
scripts=[
'oss/osscmd.py',
],
)
安装Ali OSS
easy_install alioss
或者
pip install alioss
注意事项
如果你之前用过alioss,记得修改一下
- fromalioss.oss_apiimport*
- fromalioss.oss_xml_handlerimport*
为
- from oss_apiimport*
- from oss_xml_handlerimport*
为的是与官方接口保持一致,以后就不再更新了。
OSSCMD方法和官网一致
换句话说,我只是打包了他们的包。
运行
"osscmd.py config --id=YOUR_ID --key=YOUR_KEY"
用来配置访问OSS所需要的认证码
osscmd.py getallbucket"
列出创建的bucket.
这里就不再详细说明了。
代码可见: https://github.com/gmszone/alioss