文件存储阿里云

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

相关推荐
Alwayswinnn9 小时前
27届秋招实录:从手动填表到自动化辅助的效率跃升
阿里云·自动化·秋招·大学生找工作·应届生就业·ai求职工具·一键投简历
论文复现现场13 小时前
RTX 4090 24GB 能跑 Qwen3.8-27B 吗?单卡显存计算与云端部署指南
人工智能·python·云计算·llama·gpu算力
阿里云大数据AI技术17 小时前
数据平台开始“支撑 Agent”:DataWorks Data Agent 如何重构企业数据生产方式
人工智能·阿里云·dataworks·数据平台·data agent
聚搜云——JuSouClouD18 小时前
杭州腾讯云代理商:腾讯云2核4G服务器够用吗?网站、API和开发测试怎么选
服务器·云计算·腾讯云
范桂飓21 小时前
AWS Kiro Agent 架构解析
架构·云计算·aws
Java小白笔记1 天前
Java 实现阿里云 OSS 文件上传链路:普通上传、秒传、分片与断点续传
java·开发语言·数据库·spring·阿里云
yunlaodacom1 天前
腾讯云国际站代理商:TKE镜像500MB和5GB,Pod冷启动能差多少?镜像拉取与启动优
5g·云计算·腾讯云
青软青之LIMS1 天前
King‘s LIMS如何成为快消品行业质量安全的“数字护城河“
安全·云计算
SelectDB技术团队1 天前
Apache Doris 多云原生实践:SaaS、BYOC 与四大公有云覆盖
数据库·阿里云·云原生·华为云·腾讯云·亚马逊云·写入更新
二进制漫游记1 天前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding