OSS是什么
  Ohl6n170bzPf 2023年11月02日 96 0

OSS对象存储服务是什么


OSS 对象存储服务是阿里云提供的一种云存储服务,可以用于存储各种类型的非结构化数据,如图片、音视频、文本等。它基于 RESTful API 架构,提供了高可用、高扩展性、高安全性的数据存储服务。OSS 可以帮助用户解决海量数据的存储和访问问题,提供了多种存储类型和存储方案,支持多种数据访问方式,例如 Web 直传、API 接口调用、命令行工具等。OSS 还提供了数据备份、数据加密、数据迁移等功能,能够满足不同场景下的数据存储需求。


OSS的基本使用方法


使用 OSS 的基本方法包括以下步骤:

  1. 创建 OSS Bucket
  2. 上传文件到 Bucket
  3. 下载文件
  4. 删除文件

以下是使用golang实现的一个demo

package main

import (
	"fmt"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	excelize "github.com/360EntSecGroup-Skylar/excelize/v2"
)

func main() {
	// 设置访问密钥
	f := excelize.NewFile()
	sheetName := "GetAttendanceDetail"
	f.NewSheet(sheetName)

	// 设置表头
	f.SetCellValue(sheetName, "A1", "场次ID")
	f.SetCellValue(sheetName, "B1", "及时完课人数")
	f.SetCellValue(sheetName, "C1", "学年")
	f.SetCellValue(sheetName, "D1", "学期")
	f.SetCellValue(sheetName, "E1", "年级")
	f.SetCellValue(sheetName, "F1", "及时出勤人数")
	f.SetCellValue(sheetName, "G1", "完课人数")
	f.SetCellValue(sheetName, "H1", "应出勤人数")
	f.SetCellValue(sheetName, "I1", "学科")
	f.SetCellValue(sheetName, "J1", "课程")
	f.SetCellValue(sheetName, "K1", "出勤人数")

	// 设置表格内容
	for i, v := range esData.Content {
		row := i + 1
		f.SetCellValue(sheetName, "A"+strconv.Itoa(row), v.PlanId)
		f.SetCellValue(sheetName, "B"+strconv.Itoa(row), v.FinishOntimeStu)
		f.SetCellValue(sheetName, "C"+strconv.Itoa(row), v.YearId)
		f.SetCellValue(sheetName, "D"+strconv.Itoa(row), v.TermId)
		f.SetCellValue(sheetName, "E"+strconv.Itoa(row), v.Grade)
		f.SetCellValue(sheetName, "F"+strconv.Itoa(row), v.LiveOntimeStu)
		f.SetCellValue(sheetName, "G"+strconv.Itoa(row), v.FinishNum)
		f.SetCellValue(sheetName, "H"+strconv.Itoa(row), v.NeedNum)
		f.SetCellValue(sheetName, "I"+strconv.Itoa(row), v.Subject)
		f.SetCellValue(sheetName, "J"+strconv.Itoa(row), v.CourseId)
		f.SetCellValue(sheetName, "K"+strconv.Itoa(row), v.LiveNum)
	}

	// 保存excel文件到本地
	err = f.SaveAs("GetAttendanceDetail.xlsx")
	if err != nil {
		logger.Ex(goCtx, logTag, "SaveAs error[%s].", err.Error())
		ctx.JSON(http.StatusOK, xesgin.Error(err))
		return
	}
	// todo:确认对应字段的值 上传excel文件到oss
	endpoint := "upload.xueersi.com"
	accessKeyId := "2246b809b2ab747ca7fec24f290c88e8"
	accessKeySecret := "d4610c8b65e9856662b684609fa81372"
	bucketName := "xueyan"

	ossOption := oss.Options{
		Host:            endpoint,
		AccessKeyID:     accessKeyId,
		AccessKeySecret: accessKeySecret,
		Bucket:          bucketName,
	}
	ossClient, err := oss.New(ossOption)
	if err != nil {
		logger.Ex(goCtx, logTag, "oss.New error[%s].", err.Error())
		ctx.JSON(http.StatusOK, xesgin.Error(err))
		return
	}
	// todo:确认文件的本地地址
	downloadUrl, err := ossClient.UploadTo("GetAttendanceDetail.xlsx", "/home/www/sun/GetAttendanceDetail.xlsx")
	if err != nil {
		logger.Ex(goCtx, logTag, "ossClient.Upload error[%s].", err.Error())
		ctx.JSON(http.StatusOK, xesgin.Error(err))
		return
	}
	downloadUrl = "static0.xesimg.com" + downloadUrl
	resp := new(common.GetDetailAttendanceResp)
	resp.DownloadUrl = downloadUrl
	resp.RowData = ret
}

以上代码中,我们首先设置了访问密钥、Endpoint 和 Bucket 名称,然后创建了一个 OSS Client 对象。接着,我们获取了一个 Bucket 对象,上传了一个名为 example.txt 的文件到 OSS 上,下载了该文件并保存到本地,最后删除了该文件。


知识点补充:什么是RESTful API


RESTful API 是一种 Web API 设计风格,它使用 HTTP 协议中的 GET、POST、PUT、DELETE 等方法来实现对资源的增删改查操作。RESTful API 的核心思想是将资源作为对象,使用统一的资源标识符(URI)来访问资源,并使用 HTTP 方法来表示对资源的操作。

RESTful API 的特点包括:

  1. 基于 HTTP 协议:RESTful API 使用 HTTP 协议作为通信协议,使得它可以被几乎所有的编程语言和平台所支持。

  2. 资源导向:RESTful API 将所有的操作都看作是对资源的操作,而不是对应用程序的操作。

  3. 无状态:RESTful API 不会保留客户端的状态信息,每个请求都是独立的,这使得 RESTful API 更加灵活和可伸缩。

  4. 可缓存:RESTful API 支持缓存机制,使得客户端可以缓存服务器返回的响应,从而减少网络传输的次数和带宽消耗。

  5. 统一接口:RESTful API 使用统一的接口来访问资源,使得客户端可以使用相同的方式来访问不同的资源。

  6. 轻量级:RESTful API 的设计简单明了,不需要像 SOAP 那样复杂的协议和数据格式,因此它的通信效率更高,易于实现和维护。

总之,RESTful API 是一种轻量级、可伸缩、易于实现和维护的 Web API 设计风格,它已经成为现代 Web 应用程序开发的主流方式。

直传、API 接口调用、命令行工具


直传、API 接口调用、命令行工具是三种不同的方式来使用 OSS(对象存储服务)。

  1. 直传

直传是指将本地文件直接上传到 OSS 上,通常用于小文件的上传。直传可以通过 OSS 控制台或者 OSS SDK 来实现。在 OSS 控制台中,用户可以通过简单的界面上传文件,并获取上传成功后的文件 URL。在 SDK 中,用户可以通过 API 接口或 SDK 提供的方法来实现直传,上传成功后返回文件的 URL。

  1. API 接口调用

API 接口调用是指通过调用 OSS 提供的 RESTful API 接口来实现文件的上传、下载、删除等操作。OSS 提供了丰富的 API 接口,支持多种编程语言,包括 Java、Python、PHP、Node.js、.NET、Ruby 等。通过 API 接口调用,用户可以实现高度自定义的文件上传、下载等操作,例如文件分块上传、断点续传等。

  1. 命令行工具

命令行工具是指通过在命令行界面中使用 OSS 提供的工具来实现文件的上传、下载、删除等操作。OSS 提供了命令行工具 ossutil,支持 Windows、Linux、MacOS 等操作系统,可以通过命令行界面来实现文件的上传、下载等操作。ossutil 支持断点续传、文件同步等高级功能,同时支持多种文件类型的上传和下载,可以方便地在不同的终端中使用。

综上所述,直传、API 接口调用、命令行工具是三种不同的方式来使用 OSS,用户可以根据自己的需求和实际情况选择适合自己的方式来实现文件的上传、下载等操作。

写在最后

感谢大家的阅读,晴天将继续努力,分享更多有趣且实用的主题,如有错误和纰漏,欢迎给予指正。 更多文章敬请关注作者个人公众号 晴天码字

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: C++的引用技术 下一篇: 源码、反码与补码
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  mcbWRrRPlhs5   2023年11月30日   28   0   0 访问令牌API应用程序
Ohl6n170bzPf