阿里云oss简介和如何对接使用

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 阿里云对象存储服务(Alibaba Cloud Object Storage Service,简称OSS)是阿里云提供的一种安全、稳定、高效的对象存储服务。它支持多元数据存储、持久化存储和共享访问,并且具有无限的扩展性和备份恢复能力。阿里云OSS适用于各类场景,如云计算、大数据分析、人工智能等,并且具备高可用性、高可扩展性和低成本等优势。

 

一,阿里云OSS简介

阿里云对象存储服务(Alibaba Cloud Object Storage Service,简称OSS)是阿里云提供的一种安全、稳定、高效的对象存储服务。它支持多元数据存储、持久化存储和共享访问,并且具有无限的扩展性和备份恢复能力。阿里云OSS适用于各类场景,如云计算、大数据分析、人工智能等,并且具备高可用性、高可扩展性和低成本等优势。

阿里云OSS采用了多元数据存储技术,支持多元数据存储和持久化存储,可以满足不同类型数据的存储需求。它还采用了共享访问技术,支持多个用户同时访问和操作数据,实现了高效的数据共享和协同办公。此外,阿里云OSS还具有无限的扩展性和备份恢复能力,可以自动调整存储资源,保证数据的安全可靠。

阿里云OSS适用于各类场景,如云计算、大数据分析、人工智能等。在云计算方面,阿里云OSS可以作为云服务的存储层,提供安全、稳定、高效的云存储服务;在大数据分析方面,阿里云OSS可以作为数据存储和处理平台,支持大规模数据的存储和分析;在人工智能方面,阿里云OSS可以作为模型训练和数据存储平台,支持人工智能应用的数据存储和处理。

二,准备工作

在使用阿里云OSS之前,

你需要注册一个阿里云账号,点击:注册阿里云账号


注册好了,然后到个人中心

做一下,实名认证,建议选择企业实名,这里建议不要选择个人实名,因为个人实名,阿里云是不会开具企业发票的。

三,选择好对应的OSS资源包

打开OSS资源包配置选择页面

在我们使用OSS资源包的时候,要选择:

存储包(目的是把文件、图片、音视频等,存在OSS里)

下行流量包(用户访问OSS里的文件、图片、音视频)会消耗流量,所以需要使用下行流量包抵扣流量费。

如果你需要OSS和阿里云CDN结合使用,则需要再使用OSS回源包,其功能是CDN没有OSS缓存时,则从OSS取东西,这样会消耗一定的OSS回源流量。

所以需要选择的产品如下:

image.gif

四,使用阿里云OSS控制台管理OSS

到阿里云OSS管理控制台,管理阿里云OSS资源。

1,创建Bucket

点击创建Bucket ,填写:Bucket名称,地域,存储类型,读写权限。即可创建一个Bucket

image.gif

image.gif

2,删除Bucket

选中不要的Bucket,删除即可。

image.gif

3,上传资源

点击Bucket,进入到Bucket详情,点击文件管理,点击:上传文件。然后选中想要的文件上传即可。

image.gif

4,删除资源

点击Bucket,进入到Bucket详情,选中不想要的资源,删除即可。

image.gif

五,用代码方式接入OSS,实现上传资源到OSS,从OSS下载资源,删除OSS中的资源

1,获取AccessKeyId和AccessKeySecret

阿里云AccessKey管理板块,获取或者创建AccessKey。

image.gif

2,PutObject(调用PutObject接口上传文件(Object))以Java为例。

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import java.io.File;
public class Demo {
    public static void main(String[] args) throws Exception {
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "examplebucket";
        // 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
        String objectName = "exampledir/exampleobject.txt";
        // 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。
        // 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
        String filePath= "D:\\localpath\\examplefile.txt";
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
        try {
            // 创建PutObjectRequest对象。
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));
            // 如果需要上传时设置存储类型和访问权限,请参考以下示例代码。
            // ObjectMetadata metadata = new ObjectMetadata();
            // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
            // metadata.setObjectAcl(CannedAccessControlList.Private);
            // putObjectRequest.setMetadata(metadata);
            // 上传文件。
            PutObjectResult result = ossClient.putObject(putObjectRequest);           
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

image.gif

3,GetObject(GetObject接口用于获取某个文件(Object)。此操作需要对此Object具有读权限),以Java为例

 

package com.aliyun.oss.demo;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.GetObjectRequest;
import java.io.File;
public class Demo {
    public static void main(String[] args) throws Exception {
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        //从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "examplebucket";
        // 填写不包含Bucket名称在内的Object完整路径,例如testfolder/exampleobject.txt。
        String objectName = "testfolder/exampleobject.txt";
        String pathName = "D:\\localpath\\examplefile.txt";
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
        try {
            // 下载Object到本地文件,并保存到指定的本地路径中。如果指定的本地文件存在会覆盖,不存在则新建。
            // 如果未指定本地路径,则下载后的文件默认保存到示例程序所属项目对应本地路径中。
            ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(pathName));
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

image.gif

4,DeleteObject(调用DeleteObject删除某个文件(Object)),以Java为例

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
public class Demo {
    public static void main(String[] args) throws Exception {
        // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // 填写Bucket名称,例如examplebucket。
        String bucketName = "examplebucket";
        // 填写文件完整路径。文件完整路径中不能包含Bucket名称。
        String objectName = "exampleobject.txt";
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
        try {
            // 删除文件或目录。如果要删除目录,目录必须为空。
            ossClient.deleteObject(bucketName, objectName);
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

image.gif

以上是常用接口,更多请参考阿里云官网OSS代码调用

image.gif

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
3天前
|
存储 机器学习/深度学习 编解码
阿里云服务器计算型c8y实例简介:收费标准、性能及与计算型c7区别参考
在我们通过阿里云的各种活动来选择计算型实例规格的云服务器时,通常有计算型c7和c8y实例可供选择,计算型c8y属于阿里云的倚天云服务器系列,采用阿里云自研倚天710 ARM架构CPU,依托第四代神龙架构,提供稳定可预期的超高性能。同时通过芯片快速路径加速手段,完成存储、网络性能以及计算稳定性的数量级提升。本文为大家介绍一下计算型c8y实例最新收费标准、性能介绍及与计算型c7区别参考。
阿里云服务器计算型c8y实例简介:收费标准、性能及与计算型c7区别参考
|
1天前
|
弹性计算 运维 Kubernetes
阿里云ECS与混合云策略结合,提供云上云下无缝对接,提升业务灵活性和运维效率。
【7月更文挑战第3天】阿里云ECS与混合云策略结合,提供云上云下无缝对接,提升业务灵活性和运维效率。ECS支持多种计费模式和先进架构,保证低延迟计算。混合云融合公有云灵活性与私有云安全,实现资源最优配置。通过VPC互通、应用迁移、数据同步实践,确保安全合规,助力企业数字化转型。阿里云服务展示技术实力,支持企业在混合云时代抓住机遇。
17 3
|
6天前
|
监控 Serverless 持续交付
阿里云云效产品使用问题之如何让流水线支持构建 flutter web 应用到 OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4天前
|
存储 Java Maven
大事件后端项目31--------文件上传_阿里云OSS_入门程序
大事件后端项目31--------文件上传_阿里云OSS_入门程序
|
4天前
|
存储 运维 Java
大事件后端项目30------文件上传_阿里云OSS_准备工作
大事件后端项目30------文件上传_阿里云OSS_准备工作
|
16天前
|
Java 对象存储
java对接阿里云OSS上传
java对接阿里云OSS上传
86 2
|
16天前
|
Java 对象存储
java对接七牛云OSS上传
java对接七牛云OSS上传
17 2
|
4天前
|
对象存储
大事件后端项目32--------文件上传_阿里云OSS_程序集成
大事件后端项目32--------文件上传_阿里云OSS_程序集成
|
9天前
|
Java 对象存储
阿里云OSS上传下载文件java
阿里云OSS上传下载文件java
50 0
|
9天前
|
域名解析 对象存储
OSS绑定自定义域名(基于阿里云)
OSS绑定自定义域名(基于阿里云)
19 0

热门文章

最新文章