阿里云ossutil(阿里云盘网页版)
本文目录一览:
Django上传原理求解
随着网站运作,难免有些时候需要上传文件。上传文件自然是上传到网站所在的服务器,日积月累,慢慢地网站存储空间越来越少。而且网站迁移和备份都不方便,使用这些资源时也占用大量服务器流量。
较好的解决方案是使用第三方存储服务器,例如七牛、阿里云OSS、亚马逊S3等。将文件都放到这些存储服务器,可以减少服务器负担。服务器只剩下必要的静态文件和代码。
以阿里云OSS为例,讲解如何使用第三方存储服务器。(刚好最近用到这个,而且Django有其他人写好的第三方库)
首先,需要拥有OSS。这个去好粗纳阿里云购买即可。购买之后可得到密钥等一系列信息。
接着,安装oss2库,该库是Python对应oss的操作库。
再安装或下载Django OSS的Storage库。这些库是继承Django的Storage类,并重写相关方法。Django的Stroage是管理上传文件的存储。如何自定义Storage可参考Django官方文档。
执行如下命令,安装Django-Aliyun-OSS2-Storage:
也可以不用pip安装,打开该第三方库的Github,下载源码到本地。这里我需要修改部分友没代码,所以直接下载把整个包放到Django项目的根目录(也可其他位置)。
安装下载完成之后,配置Django的Settings,添加如下设置:
另外,还有两个对应参数需要注意一下,MEDIA_ROOT和MEDIA_URL。
MEDIA_ROOT是媒体文件的上传位置根目录,由凳棚于设置了BUCKET_NAME,一般在这个bucket中。可以设置为空字符串。
文件自然上传到Django模版的FileField字段设置的upload_to位置。
MEDIA_URL是获取媒体文件的链接前缀,可根据自己的oss文件链接位置添加。
由于上传的文件需要开放被用户下载,BUCKET_ACL_TYPE设置为公共的。若你的静态文件也需要上传到OSS中,设置如下:
设置无误后,重启Django即可使用。上传文件将自动上传到OSS中。
上面提到我要修改里面的源码。因为发现上传的文件在下载时的文件名是一串乱码,不是上传时的文件名。这个需要设置一些header信息,可参考OSS的SDK文档。该header需要在上传文件时就提交,而上面的django-aliyun-oss2-storage在上传文件时没有写入header信息。
打开该包的源码文件backends.py,找到AliyunBaseStorage类的_save方法。修改如下:
这样设置,点击文件链接,即可下载并且下载文件名是上传的文件名。若你不是什么类型文件都需要这么处理,可以判断filename的后缀名加以处理。
上传阿里云的网页代码改了后没反应
若出现上传很慢的情况,确认外网的带宽是否足够,与OSS的拦知陆猛枯连接是简顷否正常。可以通过ossutil工具检测网络质量。
oss-browser如何批量替换内容
批量上传
您可以使用以下方法,批量上传文件:
ossimport工具
支持从服务器本地、第三方云存储(S3、Azure、腾讯COS等)、OSS等数据源将数据批量迁移到OSS,特别适合数据量很大的情况。详情请参见说明及配置。
ossutil工具
使用ossutil工具的cp命令,结合-r(--recursive)戚弯选项,可批量上传文件到OSS。详情请参见上传文件。
ossbrowser工具
使用ossbrowser工具批量选中文件后上传到OSS。详情请参见上传文件。
OSS控制台
使用OSS控制台批量选中文件后上传到OSS。详情请参见上传文件。
批量下载
您可以使用以下方法,批量下载文件:
ossutil工具
使用ossutil工具的cp命令,结合-r(--recursive)选项,将指定文件目录内的文件批量下载到本地。详情请参见下载文件。
ossbrowser工具
使用ossbrowser工具勾选多个文件或文件目录,将文件或文件目录批量下载到本地。详情请参见下载文件。
OSS控制台
使用OSS控制台勾选多个文件,将文件批量下载到本地。详情请参见下载文件。
文件打包后下载
结合函数计算服务,您可脊并以将批量文件打包后下载到本地。详情请参见使用函数计算打包下载OSS文件。
批量复制
您可以使用以下方法,批量复制文件:
跨区域复制
通过跨区域复制可以对指定前缀文件进行批量复制。您还可以选择是否同步历史数据、是否同步删除操作。详情请参见设置跨区域复制。
ossutil工具
使用ossutil工具的cp命令,结合-r(--recursive)选项,将指定文件目录内的文件批量复制到另一个文件目录或同账号下的另一个存储空间内。详情请参见复制文件。
ossbrowser工具
使用ossbrowser工具勾选多个文件夹或文件,将一个或多个文件复制到另一个文件目录或同账号下另一个存储空间内。详情请参见复制文件。
批量删除
您可以使用以下方法,批量删除文件:
警告 文件删除后不可恢复,请谨慎操作。
OSS SDK
使用SDK批量删除文件。
Java SDK
Python SDK
Go SDK
C++ SDK
更多语言的SDK示例请参见SDK 参考。
OSS API
通过OSS的DeleteMultipleObjects接口可批量删除文件。详情请参见DeleteMultipleObjects。
ossutil工具
使用ossutil的rm命令,结合-r(--recursive)选项,将指定前缀的文件批量删除。详情请参见删除文件。
ossbrowser工具
使用ossbrowser工具勾选多个文件或文件目录,批量删除。详情请参见删除文件。
OSS控制台
使用OSS控制台勾选多个文件,批量删除。详情请参见删除文件。
您也可以直接删除某个文件目录,文件目录内的文件会同时被删除。
使用OSS控制台的碎片管理功能,批量删除碎片。详情请参见管理碎片。
生命周期规则
通过生命周期规则批量自动删除您的文件。详情请参见生命周期规则介绍。
批量修改文件存储类型
您可以使用以下方法,批量修改文件的存储类型:
ossutil工具
使用ossutil的set-meta命令,结合-r(--recursive)选项,批量修改指定文件的存储类型。详情请参见set-meta。
生命周期规则
通过生命周期规则批量自动修改文件的存储类型。详情请参见生命周期规则介绍。
批量修改文件访问权限(ACL)
您可以通过ossutil工具批量修改文件ACL:
使用set-acl命令,结合-r(--recursive)选项,批量修改指定文件的ACL。详情请参见set-acl。
使用set-meta命令结合-r(--recursive)选项,通过修改指定文件的meta信息来修改文件的ACL。详情请参见set-meta。
批量解冻文件
您可以使用以下方法,批量将归档存储“冷冻”状态的文件恢复为可读:
ossutil工具
使用restore命令,结合-r(--recursive)选项,批量恢复冷冻状态的文件为可读状态。详情请参见restore。
ossbrowser工具
使用ossbrowser工具勾选需要解冻的文件,批量解冻。
批量设置文件Meta信息
您可以使用以下方法,批量修改文件高野闷的Meta信息:
ossutil工具
使用ossutil的set-meta命令,结合-r(--recursive)选项,批量修改指定文件的meta信息。详情请参见set-meta。
此命令可用于批量修改文件的存储类型及文件访问权限。
OSS控制台
在控制台上勾选需要修改Http head信息的文件,批量设置文件的Meta信息。详情请参见设置文件HTTP头。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
发表评论
暂时没有评论,来抢沙发吧~