当前位置: 首页 > news >正文

阿里云OSS简单应用

前提条件

        购买OSS标准存储包之后,就可以使用OSS的各种服务了

1 获取自己的OSS Endpoint

OSS访问域名和数据中心_对象存储(OSS)-阿里云帮助中心

在官方的表格上找到自己OSS标准存储包对应的外网Endpoint即可

2 创建自己的阿里云Access Key ID 和 Access Key Secret

  1. 首先,登录到阿里云开发者平台的控制台
  2. 然后鼠标对准自己的头像
  3. 这个时候会出现一个悬浮窗口
  4. 悬浮窗口内有一个叫做Acess Key管理的按钮
  5. 点下去
  6. 然后就能创建好自己的Access Key 和 Access Key Secret了
  7. 一定要备份和记住自己的Access Key 和 Access Key Secret

3 存储空间名称(Bucket Name)

  1. 打开对象存储 OSS
  2. 打开Bucket 列表
  3. 就能看到自己的Bucket名称

存储桶域名(Bucket Domain)

  1. 打开对象存储 OSS
  2. 打开Bucket 列表
  3. 打开概览
  4. 查看访问端口
  5. 查看外网访问
  6. 查看是否支持HTTPS
  7. 查看Bucket 域名
  8. 结果如:https://xxx.oss-ap-southeast-1.aliyuncs.com

5 简单上传

# -*- coding: utf-8 -*-
import oss2
import os
from oss2.credentials import EnvironmentVariableCredentialsProvider# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
# 填写Bucket名称。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')# 必须以二进制的方式打开文件。
# 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
with open('D:\\localpath\\examplefile.txt', 'rb') as fileobj:# Seek方法用于指定从第1000个字节位置开始读写。上传时会从您指定的第1000个字节位置开始上传,直到文件结束。fileobj.seek(1000, os.SEEK_SET)# Tell方法用于返回当前位置。current = fileobj.tell()# 填写Object完整路径。Object完整路径中不能包含Bucket名称。bucket.put_object('exampleobject.txt', fileobj)

6 上传回调

# -*- coding: utf-8 -*-
import json
import base64
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
# 填写Bucket名称。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')# 定义回调参数Base64编码函数。
def encode_callback(callback_params):cb_str = json.dumps(callback_params).strip()return oss2.compat.to_string(base64.b64encode(oss2.compat.to_bytes(cb_str)))# 设置上传回调参数。
callback_params = {}
# 设置回调请求的服务器地址,例如http://oss-demo.aliyuncs.com:23450。
callback_params['callbackUrl'] = 'http://oss-demo.aliyuncs.com:23450'
#(可选)设置回调请求消息头中Host的值,即您的服务器配置Host的值。
#callback_params['callbackHost'] = 'yourCallbackHost'
# 设置发起回调时请求body的值。
callback_params['callbackBody'] = 'bucket=${bucket}&object=${object}'
# 设置发起回调请求的Content-Type。
callback_params['callbackBodyType'] = 'application/x-www-form-urlencoded'
encoded_callback = encode_callback(callback_params)
# 设置发起回调请求的自定义参数,由Key和Value组成,Key必须以x:开始。
callback_var_params = {'x:my_var1': 'my_val1', 'x:my_var2': 'my_val2'}
encoded_callback_var = encode_callback(callback_var_params)# 上传回调。
params = {'x-oss-callback': encoded_callback, 'x-oss-callback-var': encoded_callback_var}
# 填写Object完整路径和字符串。Object完整路径中不能包含Bucket名称。
result = bucket.put_object('examplefiles/exampleobject.txt', 'a'*1024*1024, params)

7 上传进度条

# -*- coding: utf-8 -*-
from __future__ import print_function
import os, sys
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# 填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
# yourBucketName填写存储空间名称。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'yourBucketName')
# consumed_bytes表示已上传的数据量。
# total_bytes表示待上传的总数据量。当无法确定待上传的数据长度时,total_bytes的值为None。
def percentage(consumed_bytes, total_bytes):if total_bytes:rate = int(100 * (float(consumed_bytes) / float(total_bytes)))print('\r{0}% '.format(rate), end='')sys.stdout.flush()
# progress_callback为可选参数,用于实现进度条功能。
bucket.put_object('yourObjectName', 'a'*1024*1024, progress_callback=percentage)

相关文章:

阿里云OSS简单应用

前提条件 购买OSS标准存储包之后,就可以使用OSS的各种服务了 1 获取自己的OSS Endpoint OSS访问域名和数据中心_对象存储(OSS)-阿里云帮助中心 在官方的表格上找到自己OSS标准存储包对应的外网Endpoint即可 2 创建自己的阿里云Access Key ID 和 Access Key Secret …...

cleanshot Mac 上的截图工具

笔者闲来无事,最近在找一些mac上好用的工具其中一款就是cleanShot。为什么不用原有的mac自带的呢。因为相对来说编辑功能不算全面,不支持长截图。那有没有一款软件支持关于截图的好用工具呢。 所以笔者找了这款。安装包是直接安装就可使用的。请大家点赞…...

JMeter进行HTTP接口测试的技术要点

参数化 用户定义的变量 用的时候 ${名字} 用户参数 在参数列表中传递 并且也是${} csv数据文件设置 false 不忽略首行 要首行 从第一行读取 true 忽略首行 从第二行开始 请求时的参数设置: 这里的名称是看其接口需要的请求参数的名称 这里的变量名称就是为csv里面…...

基于智能算法的品牌视觉识别系统优化研究

基于智能算法的品牌视觉识别系统优化研究 一、引言 随着人工智能技术的快速发展,智能算法在各个领域的应用日益广泛。在品牌视觉识别系统中,智能算法同样发挥着重要作用。品牌视觉识别系统(Visual Identity System,简称VIS)是企业通过统一的视觉符号系统,将企业的理念、…...

递归锁与普通锁的区别

什么是锁? 在多线程编程中,锁是一种机制,用来确保某些代码块在同一时间只能被一个线程执行。想象一下,你和你的朋友们都想同时进入一个只有一把椅子的房间。为了避免混乱,你们需要一个锁来控制进入的顺序。 普通锁&a…...

FPGA上板项目(二)——PLL测试

目录 实验内容实验原理实验步骤实验结果 实验内容 将差分时钟信号转化为 192MHz 时钟信号作为输出。 实验原理 PLL,即锁相环,一种反馈控制电路,具有时钟倍频、分频、相位偏移和可编程占空比的功能。 实验步骤 添加 clocking wizard IP核&…...

C语言 | Leecode C语言题解之第229题多数元素II

题目: 题解: /*** Note: The returned array must be malloced, assume caller calls free().*//*假定 num1,num2 为出现次数大于 nums.length / 3 的两个数。(最多出现两个)遍历 nums, 若出现 num1、num2…...

mybatis-plus映射mysql的json类型的字段

一、对json里面内容建立实体类 Data AllArgsConstructor NoArgsConstructor public class RouteMetaEntity {private String title;private Boolean affix;private Boolean isAlwaysShow; }二、主类做映射 TableField(typeHandler JacksonTypeHandler.class)private RouteMe…...

20240716 Codeforces题目

A - Split the Multiset 题目 多集是一组数字,其中可以有相等的元素,数字的顺序无关紧要。例如, { 2 , 2 , 4 } \{2,2,4\} {2,2,4} 是一个multiset。 你有一个多集 S S S 。最初,multiset只包含一个正整数 n n n 。即 S {…...

29.【C语言】自定义函数

1、自定义详解 *提示&#xff1a;先看第12,19篇 例&#xff1a;写一个程序交换两个变量的值 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> void swap(int x, int y) {int z 0;z x;x y;y z; } int main() {int a 10;int b 20;swap(a, b);printf("%d…...

C++面向对象编程 基础篇(3)函数基础

3、函数基础 3.1 函数默认参数 在C中&#xff0c;函数的形参列表中的形参是可以有默认值的 注意事项&#xff1a; 如果某个位置已经有了默认参数&#xff0c;往后的形参都要有默认参数 函数声明和函数实现只能有一个有默认参数 示例&#xff1a; //如果自己传入参数&…...

excel有条件提取单元格特定文本(筛选纯文字的单元格或含有数字的单元格、单元格提取不同的文本长度)

实际工作背景 需要对导出的银行流水中的数十个村以及对应的村小组进行分组统计&#xff0c;但是初始的表格中村和小组是混在一起的&#xff0c;如下图所示&#xff1a; 目的&#xff1a;将大树村和大树村小组名称分别筛选出来 1.观察发现&#xff0c;大树村小组的单元格第4…...

HBase 在统一内容平台业务的优化实践

作者&#xff1a;来自 vivo 互联网服务器团队-Leng Jianyu、Huang Haitao HBase是一款开源高可靠性、扩展性、高性能和灵活性的分布式非关系型数据库&#xff0c;本文围绕数据库选型以及使用HBase的痛点展开&#xff0c;从四个方面对HBase的使用进行优化&#xff0c;取得了一些…...

【异常解决】Unable to start embedded Tomcat Nacos 启动报错

Unable to start embedded Tomcat Nacos 启动报错解决方案 一、背景描述二、原因分析三、解决方案 一、背景描述 Windows 本地启动 Nacos&#xff08;2.2.0&#xff09; 服务&#xff0c;控制台报错 Unable to start embedded Tomcat。 报错信息&#xff1a;Unable to start …...

【Java面向对象】对象和类

文章目录 1.为对象定义类2.定义类2.1 主类 3.类与对象3.1 构造方法3.2 通过引用变量访问对象3.3 访问对象的数据和方法3.4 引用数据域和 null 值3.5 基本类型变量和引用类型变量的区别 4.常见的类 1.为对象定义类 面向对象程序设计(OOP) 就是使用对象进行程序设计。对象 (obje…...

在微服务架构架构中父工程中的`<dependencyManagement>`和 `<dependencies>`的区别

在微服务架构架构中父工程中的<dependencyManagement>和 <dependencies>的区别&#xff1a; 在微服务架构中&#xff0c;通常会有一个父工程&#xff08;或称作聚合工程&#xff09;来管理一组相关的子模块&#xff08;即各个微服务&#xff09;。Maven 的 <de…...

Docker安装Zookeeper、RocketMQ

安装Zookeeper 拉取镜像 docker pull zookeeper:3.9.2启动容器 -d后台启动&#xff0c;-p映射容器2181端口到宿主机2181端口&#xff0c;限制容器最大内存占用为128m&#xff0c;–restart容器自动重启 docker run -d -p 2181:2181 -m 128m --restartalways --name zookeepe…...

Ubuntu 磁盘扩容

1.下载工具 sudo apt-get install gparted 2.调整大小...

如何在QGC中接收和处理无人机上传的各种传感器数据(如GPS、IMU等)。

在 QGroundControl (QGC) 中接收和处理无人机上传的各种传感器数据&#xff08;如 GPS、IMU 等&#xff09;&#xff0c;主要通过 MAVLink 协议实现。MAVLink 是一种轻量级的消息传输协议&#xff0c;用于无人机和地面站之间的通信。QGC 通过 MAVLink 消息接收来自无人机的传感…...

Spring配置Bean自己的关系:继承和依赖

继承&#xff1a;这里的继承不是Java中类之间的继承&#xff0c; 是指配置文件中Bean配置项之间的继承。 用parent属性&#xff0c;配置要继承的bean&#xff0c;这样可以把相同的部分去去掉&#xff0c;下上两个bean的关系就变成了父bean和子bean&#xff0c; 子bean可以继承父…...

华为交换机Telnet配置保姆级教程:从无认证到AAA认证,手把手带你避坑

华为交换机Telnet安全配置全指南&#xff1a;从基础到企业级实践 远程管理网络设备是每位网络工程师的必备技能&#xff0c;而Telnet作为最传统的远程登录协议之一&#xff0c;至今仍在许多企业环境中广泛使用。记得我刚入行时&#xff0c;第一次通过Telnet成功登录到一台核心交…...

给硬件新人的半导体测试扫盲:从晶圆到芯片,CP/FT/BI测试到底在测什么?

半导体测试全流程解析&#xff1a;从晶圆到芯片的质量守护 走进半导体制造的世界&#xff0c;就像观察一座精密运转的钟表工厂——每个齿轮都必须完美咬合才能确保最终产品走时准确。对于刚接触这个领域的新人来说&#xff0c;理解芯片从硅片到成品的测试流程&#xff0c;是掌握…...

【限时解密】金融级Java代码审查SOP:Gemini+自定义规则包+合规检查矩阵(ISO 27001/等保2.0双认证适配版)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Gemini Java代码审查的核心价值与金融级适配逻辑 在高并发、强一致性、零容忍故障的金融系统中&#xff0c;Java代码质量直接关联资金安全、监管合规与交易连续性。Gemini并非通用AI辅助工具&#xff0c;而是…...

观察Taotoken在多模型聚合调用下的月度账单明细

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 观察Taotoken在多模型聚合调用下的月度账单明细 对于个人开发者或项目组而言&#xff0c;在项目中集成多个大语言模型&#xff08;…...

XOutput终极教程:轻松将任意手柄转换为Xbox控制器

XOutput终极教程&#xff1a;轻松将任意手柄转换为Xbox控制器 【免费下载链接】XOutput DirectInput to XInput wrapper 项目地址: https://gitcode.com/gh_mirrors/xo/XOutput XOutput是一款强大的开源工具&#xff0c;能够将DirectInput设备&#xff08;如各类老式游戏…...

技术选型指南:Pentaho Data Integration 11.x企业级数据集成架构深度解析

技术选型指南&#xff1a;Pentaho Data Integration 11.x企业级数据集成架构深度解析 【免费下载链接】pentaho-kettle Pentaho Data Integration ( ETL ) a.k.a Kettle 项目地址: https://gitcode.com/gh_mirrors/pe/pentaho-kettle Pentaho Data Integration&#xff…...

PowerToys中文汉化:3分钟让微软效率工具变身中文版

PowerToys中文汉化&#xff1a;3分钟让微软效率工具变身中文版 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN 还在为PowerToys的英文界面发愁吗&#xf…...

Spring Cache + Redis 缓存套餐数据,我是这样在Spring Boot项目里省掉80%数据库查询的

Spring Cache Redis 实战&#xff1a;如何用缓存套餐数据减少80%数据库查询 在电商和外卖系统中&#xff0c;套餐数据往往是高频查询但低频变更的典型场景。想象一下&#xff0c;每当用户浏览餐厅页面时&#xff0c;系统都要反复查询数据库获取相同的套餐信息&#xff0c;这种…...

如何在OneNote 2016中实现专业级代码高亮?NoteHighlight2016完整使用指南

如何在OneNote 2016中实现专业级代码高亮&#xff1f;NoteHighlight2016完整使用指南 【免费下载链接】NoteHighlight2016 Source code syntax highlighting for OneNote 2016 and OneNote for O365 . NoteHighlight 2013 port for OneNote 2016 (32-bit and 64-bit) 项目地址…...

别再用土办法改论文了!书匠策AI官网www.shujiangce.com才是2025届毕业生的“通关密码“

你有没有经历过这种崩溃瞬间&#xff1f; 凌晨两点&#xff0c;你对着电脑屏幕&#xff0c;查重率39%&#xff0c;AIGC疑似率67%。导师发来一条消息&#xff1a;"这篇不像你写的&#xff0c;重写。" 那一刻&#xff0c;你是不是特别想问一句&#xff1a;我到底该怎…...