文件存储阿里云

1.图片存储

图片存储是指将图片文件保存在服务器或云存储中的技术或服务。图片存储的主要目的是方便用户上传、存储、管理和分享图片文件。

图片存储可以分为两种主要类型:本地存储和云存储。

本地存储是将图片文件保存在本地服务器或计算机上的一种方式。这种存储方式通常需要自己配置服务器和存储设备,并负责维护和管理图片文件。本地存储的优点是可以直接掌控图片文件,可自定义存储规则和和访问权限。但它也具有一些缺点,例如需要投入更多的成本和精力,以及可能存在数据安全和可靠性的风险。

云存储是将图片文件保存在云服务器或云存储服务提供商的服务器上的一种方式。这种存储方式可以免去自己配置服务器和存储设备的麻烦,并提供了便捷的上传、存储、管理和分享图片的功能。云存储的优点是具有高可用性和可靠性,用户可以根据需要灵活扩展存储空间,同时还可以享受云服务提供商提供的其他功能和服务。但云存储也存在一些缺点,如对数据的掌控程度较低,可能存在数据安全和隐私问题。

图片存储的选择应根据实际需求和预算来决定。如果对数据控制要求比较高,有足够的资源和技术支持,那么选择本地存储可能更合适。如果希望省去服务器维护和管理的麻烦,注重可用性和扩展性,那么选择云存储可能更合适。

对象存储oss

阿里云的对象存储服务(Object Storage Service,简称OSS)是一种海量、安全、低成本、高可靠的云存储服务。它可以用来存储和管理大量的非结构化数据,如图片、音视频、文档等。阿里云OSS提供了丰富的功能和API,可以实现数据的上传、下载、删除、复制等操作,还支持图片处理、音视频转码等功能,方便用户在云端进行数据的处理和管理。阿里云OSS具有高可靠性和可扩展性,可以根据用户的需求自动扩缩容,同时提供多种数据备份和数据安全措施,保证数据的安全和可靠性。通过阿里云OSS,用户可以轻松地构建起自己的云存储平台,满足各种业务场景下的存储需求。

2.使用步骤

2.1根据步骤申请

创建key完成后需要配置参数

2.2配置AK & SK

管理员身份打开CMD命令行,执行如下命令,配置系统的环境变量。

复制代码
set OSS_ACCESS_KEY_ID=LTAI5tXXXXXXXXXXXXXXXXXXXXM8TP
set OSS_ACCESS_KEY_SECRET=UzMcJXXXXXXXXXXXXXXXXXXXXdabTNafi

1.1.3查看SDK文档

配置maven

<dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.17.4</version>
</dependency>

上传文件流

以下代码用于将文件流上传到目标存储空间examplebucket中exampledir目录下的exampleobject.txt文件。

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.FileInputStream;
import java.io.InputStream;

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 {
            InputStream inputStream = new FileInputStream(filePath);
            // 创建PutObjectRequest对象。
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);
            // 创建PutObject请求。
            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();
            }
        }
    }
} 

在以上代码中,需要替换的内容为:

  • endpoint:阿里云OSS中的bucket对应的域名

  • bucketName:Bucket名称

  • objectName:对象名称,在Bucket中存储的对象的名称

  • filePath:文件路径

运行以上程序后,会把本地的文件上传到阿里云OSS服务器上。

相关推荐
知孤云出岫29 分钟前
云上拼团GO指南——腾讯云博客部署案例,双11欢乐GO
云计算·腾讯云
lihuhelihu1 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
dessler2 小时前
Linux系统-ubuntu系统安装
linux·运维·云计算
Elastic 中国社区官方博客3 小时前
如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器
大数据·elasticsearch·搜索引擎·云计算·全文检索·可用性测试·aws
九河云3 小时前
如何选择适合的AWS EC2实例类型
服务器·云计算·aws
Huaqiwill6 小时前
Ubuntun搭建并行计算环境
linux·云计算
为什么这亚子7 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
划水小将军7 小时前
阿里云函数计算GBK编码
阿里云·云计算
沈艺强8 小时前
云计算答案
云计算
Thanks_ks11 小时前
探索计算机互联网的奇妙世界:从基础到前沿的无尽之旅
物联网·云计算·区块链·tcp/ip协议·计算机互联网·万维网·未来科技