阿里云oss基本操作

1、Oss批量操作

批量上传:ossimport工具、ossutil工具、ossbrowser工具、OSS控制台‘

批量下载:osstuil工具、ossbrowser工具、OSS控制台

批量复制:跨区域复制、ossutil工具、ossbrowser工具

批量删除:OSS SDK(java\python\Go\C++)、OSS API、ossutil工具、ossbrowser工具、OSS控制台、生命周期规则

批量修改文件存储类型:ossutil工具、生命周期规则

批量修改文件访问权限(ACL):ossutil 工具(set-acl\set-meta)

批量解冻文件:ossutil工具、ossbrowser工具

批量设置文件Meta信息:ossutil工具、OSS控制台

 

2、Ossutil 操作(常用操作)

-rm (删除对象)

 

    • 删除空bucket

./ossutil64 rm oss://test-cv -b

    • 删除bucket并清除数据(谨慎操作)

./osstuil64 rm oss://test-cv -bar

  • 删除单个object

./ossutil64 rm oss://test-cv/test_step2/person_and_bike.png

  • 删除指定前缀的所有Object(类似于删除文件夹)

配合-r选项,可以递归执行删除操作,删除指定前缀的所有Object。

./ossutil64 rm –r oss://test-cv/test_step2/

  • 批量删除符合条件的文件

您可以使用--include/--exclude参数,批量删除符合条件的Object。

删除所有文件格式不为jpg的Object

./ossutil64 rm oss://test-cv/test_step2 --exclude “*.jpg” -r

删除所有文件名包括abc且不是jpg和txt格式的objcet

./ossutil64 rm oss://test-cv/test_step2 –include “*abc*” –exclude “*.jpg” –exclude “*.txt” –r

 

-cp (拷贝对象)[-r 递归操作;-f 强制操作,不进行询问提示;-u 更新操作]

 

  • 上传文件(cp 本地 oss)

./ossutil64 cp file_url cloud_url [-r] [-f] [-u]

./ossutil64 cp /data/cv/images oss://test-cv/test_step1/ -r -f

  • 下载文件(cp oss 本地)

./ossutil64 cp cloud_url file_url [-r] [-f] [-u]

  • 拷贝文件(cp oss oss)

./ossutil64 cp cloud_url cloud_url [-r] [-f] [-u]

  • 上传单个文件

./ossutil64 cp /data/cv/images/person_and_bike.png oss://test-cv/test_step1/

  • 上传文件夹

./ossutil64 cp –r /data/cv/images oss://test-cv/test_step1

  • 上传指定格式的文件

./ossutil64 cp /data/cv/images/ oss://test-cv/test_step1 –include “*.jpg” -r

  • 下载单个文件

./ossutil64 cp oss://test-cv/test_step1/person.png /data/cv/images/

  • 下载文件夹

./ossutil64 cp –r oss://test-cv/test_step1 /data/cv/images

  • 下载文件夹并指定 –update选项

./ossutil64 cp –r oss://test-cv/test_step1 /data/cv/images --update

  • 下载指定格式的文件

./ossutil64 cp oss://test-cv/test_step1 /data/cv/images –exclude “*.jpg” -r

  • 拷贝单个文件

./ossutil64 cp oss://test-cv/test_step1/person.png oss://test-cv/test_step2/

  • 拷贝单个文件并重命名

./ossutil64 cp oss://test-cv/test_step1/person.png oss://test-cv/test_step2/person_bak.png

经测试 cp cloud_url cloud_url 速度低于 cp local_url cloud_url

 

-ls (列举目录)

 

  • 列举bucket中所有object

./ossutil64 ls oss://test-cv/

  • 选项可以显示当前目录下的文件和子目录,模拟目录格式

./ossutil64 ls oss://test-cv/ -d -s

  • 列举指定前缀的object

./ossutil64 ls oss://test-cv/test_step1/

 

-mkdir(创建目录)

 

  • 创建一个目录

./ossutil64 mkdir oss://test-cv/test_step3

  • 创建一个多级目录

./ossutil64 mkdir oss://test-cv/test_step3/test_step4/test_step5

 

3、Python Sdk 操作

import oss2

end_point = "oss-cn-beijing-internal.aliyuncs.com"

access_kid = "dfasdfasdfasdfasdfasfasdfasfasdfasdf"

access_scr = "adfadfadffadfasdfasfasdfd"

bucket_name = "test-cv"

auth = oss2.Auth(access_kid, access_scr)

bucket = oss2.Bucket(auth, end_point, bucket_name)

 

-put(上传文件)

 

  • 上传文件

obj_name="test_step1/person_and_bike_209__test.png

local_file="~/cv/INRIA/INRIAPerson/images/person_and_bike_209.png"

bucket.put_object_from_file(obj_name, local_file)

  • 创建空目录

obj_name="image_classification/INRIAPerson/person"

bucket.put_object(obj_name,"")

 

-get(下载文件)

 

  • 下载文件

obj_name="test_step1/person_and_bike_209__test.png"

local_file="/data/down_images/down_image.jpg"

bucket.get_object_to_file(obj_name, local_file)

 

-ls(列举文件)

 

  • 展示所有的object

for obj in oss2.ObjectIterator(bucket):

      print(obj.key)

  • 展示固定长度的object

for b in islice(oss2.ObjectIterator(bucket),10):

      print(b.key)

  • 展示指定前缀的文件

for obj in oss2.ObjectIterator(bucket,prefix = ’image_classification/sun397/abbey/'):

       print(obj.key)

  • 展示指定目录下的文件和子目录

for obj in oss2.ObjectIterator(bucket,prefix =’image_classification/sun397/abbey/', delimiter = '/'):

print(obj.key)

 

-del(删除文件)

 

  • 删除单个object

bucket.delete_object(obj_name)

  • 批量删除文件

for obj in oss2.ObjectIterator(bucket, prefix=‘image_classification/sun397/abbey/’):

      bucket.delete_object(obj.key)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
修改说明: ================================================================================== 1 原版只支持Delphi XE,本版改为可以支持Delphi6/7,在Delphi6下编译运行通过 2 修正了原版无法支持中文名称的BUG 使用示例: ================================================================================== ossTemp := TAliOssFileSystem.Create(OSS_ACCESS_ID, OSS_ASSCESS_KEY, OSS_HOSTNAME); ossTemp.ChangeVolumn(sBucketName); ossTemp.UploadFile(sLocalFileName, sOSSFileName); ossTemp.Free; 原版说明: ================================================================================== 该SDK使用Delphi/Object Pascal编程语言编写,完整实现了阿里云OSS API的全部功能,并提 供了两套API:第一套API(类名:TAliOss)仿照OSS PHP SDK实现了全部函数,第二套API( 类名:TAliOssFileSystem)封装了TAliOss,并在其的基础上实现了类似于文件系统的API, 实现了包括“卷”、“文件夹”、“文件”等抽象概念,并提供相应的功能函数。 两套API面向的应用场景不同:TAliOssFileSystem适合于将OSS服务看作是一种文件系统的应 用,开发人员不必了解OSS API的内部参数及XML定义,可提高编程效率,使用方便;TAliOSS 适合于其他类型的应用,当编程人员需要更加定制化的调用或者需要更加灵活的参数设置时, 可以直接使用该SDK操作调用参数和返回值。两套API互不干扰,可以在项目中同时使用。
以下是使用 ThinkPHP 集成阿里云 OSS 的代码示例: 1. 安装阿里云 OSS SDK 在项目根目录下的 `composer.json` 文件中添加阿里云 OSS SDK 的依赖: ``` "require": { "aliyuncs/oss-sdk-php": "^2.5" } ``` 然后执行 `composer install` 来安装依赖。 2. 配置阿里云 OSS 在 `config` 目录下新建 `oss.php` 配置文件,并添加以下内容: ```php return [ 'access_key_id' => 'your_access_key_id', 'access_key_secret' => 'your_access_key_secret', 'bucket' => 'your_bucket_name', 'endpoint' => 'your_endpoint', ]; ``` 其中,`access_key_id` 和 `access_key_secret` 是您的阿里云账号的 Access Key ID 和 Access Key Secret,`bucket` 是您的 OSS 存储桶名称,`endpoint` 是您的 OSS 访问域名。 3. 初始化阿里云 OSS 在 `app` 目录下新建 `common.php` 文件,并添加以下内容: ```php use OSS\OssClient; if (!function_exists('oss')) { function oss() { $config = config('oss'); $ossClient = new OssClient( $config['access_key_id'], $config['access_key_secret'], $config['endpoint'] ); return $ossClient; } } ``` 这里我们使用了一个自定义的全局函数 `oss()` 来初始化阿里云 OSS 客户端。 4. 上传文件到阿里云 OSS ```php use OSS\Core\OssException; try { $result = oss()->uploadFile( $bucket, $object, $file ); } catch (OssException $e) { // 处理异常 } ``` 其中,`$bucket` 是您的 OSS 存储桶名称,`$object` 是上传到 OSS 的文件路径和文件名,`$file` 是本地要上传的文件路径。 5. 下载文件 ```php use OSS\Core\OssException; try { oss()->getObject( $bucket, $object, $options ); } catch (OssException $e) { // 处理异常 } ``` 其中,`$bucket` 是您的 OSS 存储桶名称,`$object` 是要下载的文件路径和文件名,`$options` 是一个可选的参数数组,用于指定下载文件的一些选项,比如 `fileDownload` 用于指定下载时的文件名。 以上是使用 ThinkPHP 集成阿里云 OSS基本操作示例。如果您需要进行其他操作,可以参考阿里云 OSS SDK 的文档和 API 参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值