阿里云OSS操作

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 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('LTAI5tKDLc6S2pkrcqyZHxxx''OJybPiQpyeS22tlKpmgaex1xxxxxx')

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('LTAI5tKDLc6S2pkrcqyZHxxx''OJybPiQpyeS2xxxxxx')

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('LTAI5tKDLc6S2pkrcqyZHxxx''OJybPiQpyeS2xxxxxx')

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搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
5月前
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
193 1
|
7月前
|
存储 分布式计算 物联网
OSS一般常见问题
OSS一般常见问题
75 1
|
7月前
|
存储 弹性计算 API
OSS使用方式
OSS使用方式
83 2
|
7月前
|
安全 Java 网络安全
对象存储oss使用问题之使用oss上服务器后显示服务异常如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
864 0
|
7月前
|
开发工具 对象存储 Android开发
对象存储oss使用问题之C++使用OSS SDK时遍历OSS上的文件时崩溃如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
262 0
|
存储 安全 Java
阿里云OSS的运用
阿里云OSS的运用
|
存储 对象存储 数据安全/隐私保护
配置阿里云Oss
配置阿里云Oss
配置阿里云Oss
|
API 开发工具 对象存储
对象存储 OSS 如何创建 bucket|学习笔记
快速学习对象存储 OSS 如何创建 bucket
2976 0
|
存储 对象存储
阿里云对象存储OSS可以关闭吗?
误操作开通了对象存储OSS如何关闭?
1137 0
|
存储 SQL JSON
通过OSS外表访问OSS数据
原文地址:通过OSS外表访问OSS数据 - 云原生关系型数据库 PolarDB MySQL引擎 - 阿里云PolarDB可以通过OSS外表直接查询存储在OSS上的CSV格式数据,有效地降低存储的成本。本文档主要介绍了通过OSS外表访问OSS数据的操作步骤。背景信息通过OSS外表,您可以把CSV格式的冷数据存储在OSS引擎上,并对冷数据进行查询和分析。具体原理如下:CSV格式的数据支持的数据类型包括
446 0