阿里云OSS操作

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 阿里云OSS操作

阅读目录

回到顶部

一、阿里云OSS API常用操作

1.上传文件

1.1 小文件上传(小于5GB)

1

2

3

4

5

6

7

8

9

10

11

#!/usr/bin/python3

# -*- coding: utf-8 -*-

import oss2

import os

import sys

oss_file_name=sys.argv[1]

local_file_name=sys.argv[2]

auth = oss2.Auth('xxxxxx''xxxxxx')

bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com''mqops-backup')

 

bucket.put_object_from_file(filename=local_file_name,key=oss_file_name)

1.2 大文件上传(断点续传)

1

2

3

4

5

6

7

8

9

10

11

12

#!/usr/bin/python3

# -*- coding: utf-8 -*-

import oss2

import os

import sys

oss_file_name=sys.argv[1]

local_file_name=sys.argv[2]

auth = oss2.Auth('xxxxxx''xxxxxx')

bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com''mqops-backup')

 

oss2.resumable_upload(bucket, oss_file_name, local_file_name, multipart_threshold=100 * 1024)  # 设置分片大小,单位为字节,取值范围为100 KB~5 GB。默认值为100 KB

2.删除文件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#!/usr/bin/python3

# -*- coding: utf-8 -*-

import oss2

file_list = []

retain_file_num = 3   #保留的文件个数

prefix = 'TestDB_bak/' # 文件前缀(类似目录名称)prefix参数不能以正斜线(/)开头。如果prefix参数置空,则默认列举Bucket内的所有Object

 

auth = oss2.Auth('xxxxxx''xxxxxx')

bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com''mqops-backup')

# 获取文件名称保存到列表,默认按照字母序排列

for obj in oss2.ObjectIterator(bucket,prefix=prefix):

    file_list.append(obj.key)# 删除需要保留的文件

file_list=file_list[:- retain_file_num]

if file_list:     # 删除文件,传入对象为列表

    result = bucket.batch_delete_objects(file_list)

    # 打印成功删除的文件名。

    print('\n'.join(result.deleted_keys))

3.列举文件

简单列举

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

import oss2

auth = oss2.Auth('yourAccessKeyId''yourAccessKeySecret')

bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com''examplebucket')

 

# 列举fun文件夹下的文件与子文件夹名称,不列举子文件夹下的文件。如果不需要返回owner信息可以不设置fetch_owner参数。# prefix 列举以prefix开头的文件,即文件夹下所有文件和子文件夹,包含子文件下文件及文件夹名称# delimiter 如果为 '/' 则只列举该文件夹下的文件和子文件夹名称,子文件下的文件和文件夹不显示# start_after 列举文件的起始位置# fetch_owner 是否返回包含owenr的信息

for obj in oss2.ObjectIteratorV2(bucket, prefix = 'fun/', delimiter = '/', start_after='fun/', fetch_owner=True):

    # 通过is_prefix方法判断obj是否为文件夹。

    if obj.is_prefix():  # 判断obj为文件夹。

        print('directory: ' + obj.key)

    else:                # 判断obj为文件。

        print('file: ' + obj.key)

        print('file owner display name: ' + obj.owner.display_name)

        print('file owner id: ' + obj.owner.id)

 

 

参考:https://help.aliyun.com/document_detail/88458.html 

根据字段排序列举(需要OSS开启数据索引)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

import oss2

 

from oss2.models import MetaQuery, AggregationsRequest

 

auth = oss2.Auth('yourAccessKeyId''yourAccessKeySecret')

bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com''mqops-backup')

 

#do_meta_query_request = MetaQuery(max_results=10, query='{"Field": "Size","Value": "1048576","Operation": "lt"}', sort='Size', order='asc')  #根据文件大小排序

do_meta_query_request = MetaQuery(query='{"Field": "Filename","Value": "TestDB_bak/","Operation": "prefix"}',sort='FileModifiedTime', order='asc') #指定路径,按时间进行排序

result = bucket.do_bucket_meta_query(do_meta_query_request)

print(type(result.files))

print(result.files[0].file_name)

 

 

参考:

字段和操作符的支持列表:https://help.aliyun.com/document_detail/419236.htm?spm=a2c4g.11186623.0.0.61ff4c940OkJTg#concept-2084036

DoMetaQuery API:https://help.aliyun.com/document_detail/419228.html

数据索引:https://help.aliyun.com/document_detail/416775.html



 

 

参考:https://help.aliyun.com/document_detail/32025.html

 

相关实践学习
对象存储OSS快速上手——如何使用ossbrowser
本实验是对象存储OSS入门级实验。通过本实验,用户可学会如何用对象OSS的插件,进行简单的数据存、查、删等操作。
相关文章
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
12903 2
|
8月前
|
测试技术 API
LangChain中的Prompt模板如何使用?
本文介绍了LangChain中的Prompt模板功能,涵盖其基本用法、动态生成提示词的实现方式,以及如何设置默认值、从文件加载模板和应用于聊天模型的场景。通过示例代码演示了模板的创建与格式化过程,帮助提升提示词管理效率,适用于测试用例设计等场景。
1417 121
|
9月前
|
存储 域名解析 前端开发
震惊!不买服务器,还可以用阿里云国际站 OSS 轻松搭建静态网站
在数字化时代,利用阿里云国际站OSS可低成本搭建静态网站。本文详解OSS优势及步骤:创建Bucket、上传文件、配置首页与404页面、绑定域名等,助你快速上线个人或小型业务网站,操作简单,成本低廉,适合初学者与中小企业。
|
11月前
|
存储 安全 前端开发
SpringBoot阿里云OSS文件上传实例
本文介绍了通过阿里云OSS实现用户头像上传的功能。首先概述了OSS的特点,如高持久性、RESTful API支持及多种存储类型。接着详细描述了前期准备步骤,包括注册阿里云账号、实名认证、开通OSS服务、创建Bucket及AccessKey。注意事项中提到需调整Bucket的访问权限以支持前端访问。最后提供了基于SpringBoot的代码实现,包含配置文件与上传工具类的编写,帮助开发者快速集成OSS文件上传功能。
2215 1
SpringBoot阿里云OSS文件上传实例
|
SQL 数据库
SQL INSERT INTO SELECT 语句
SQL INSERT INTO SELECT 语句
2983 8
|
Arthas 监控 Java
Arthas profiler(使用async-profiler对应用采样,生成火焰图)
Arthas profiler(使用async-profiler对应用采样,生成火焰图)
1975 10
|
存储 人工智能 安全
一文了解:阿里云对象存储OSS是什么?
阿里云对象存储OSS是一款海量、安全、低成本、高可靠的云存储服务,数据持久性达99.9999999999%,适用于互联网音视频、教育、AI/物联网、影视渲染及基因等行业。OSS提供标准、低频、归档等多种存储类型,支持按量付费与资源包两种计费模式,公网出流量收费,内网流量免费。
12867 7
|
前端开发 JavaScript API
oss大文件上传
oss大文件上传
2139 6
|
存储 开发工具 对象存储
开发者如何使用对象存储OSS
【10月更文挑战第6天】开发者如何使用对象存储OSS
2739 7
|
存储 对象存储 Python
Python中使用阿里云OSS存储实现文件上传和下载功能
Python中使用阿里云OSS存储实现文件上传和下载功能
3700 2

热门文章

最新文章