文件存储阿里云

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服务器上。

相关推荐
企业管理8MSaaS4 小时前
如何选择适合Scrum团队的项目管理系统?
云计算·scrum
企业管理8MSaaS4 小时前
如何在 Scrum 管理中化解团队冲突?
云计算·scrum
正在走向自律13 小时前
阿里云ESC服务器一次性全部迁移到另一个ESC
服务器·阿里云·云计算
OkeyProxy15 小时前
HTTP、HTTPS和SOCKS5代理協議
网络协议·https·云计算·代理服务器·海外ip代理
小峰编程18 小时前
独一无二,万字详谈——Linux之文件管理
linux·运维·服务器·云原生·云计算·ai原生
codeMaster__hyd20 小时前
CentOS7系统下部署tomcat,浏览器访问localhost:8080/
服务器·阿里云·tomcat
終不似少年遊*21 小时前
华为云计算HCIE笔记04
网络·华为云·云计算·学习笔记·hcie·认证·数据中心
神秘的土鸡1 天前
LGMRec:结合局部与全局图学习的多模态推荐系统
目标检测·计算机视觉·云计算
♡喜欢做梦1 天前
腾讯云云开发 Copilot 深度探索与实战分享
云计算·腾讯云·copilot·玩转云开发 copilot
群联云防护小杜1 天前
服务器压力测试怎么做
运维·服务器·网络协议·tcp/ip·阿里云·压力测试