OSS基本使用

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000 次 1年
简介: 【7月更文挑战第19天】

阿里云OSS-HDFS/OSS

1. 阿里云OSS基本使用

1.1 配置和初始化

首先,需要配置一些基本的属性,如endpoint、accessKeyId、accessKeySecret和bucketName。这些属性可以在application.yml中配置,也可以通过代码直接设置。以下是一个示例配置类和配置文件:

AliOssProperties类

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "sky.alioss")
@Data
public class AliOssProperties {
   
    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;
}

application.yml的配置

sky:
  alioss:
    access-key-id: xxxxx
    access-key-secret: xxxxx
    bucket-name: xxxxx
    endpoint: xxxxx
1.2 上传文件

使用以下代码可以上传文件到OSS:

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.io.ByteArrayInputStream;

@Data
@AllArgsConstructor
public class AliOssUtil {
   
    private String endpoint;
    private String accessKeyId;
    private String accessKeySecret;
    private String bucketName;

    public String upload(byte[] bytes, String objectName) {
   
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        try {
   
            ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));
        } 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();
            }
        }
        StringBuilder stringBuilder = new StringBuilder("https://");
        stringBuilder.append(bucketName).append(".").append(endpoint).append("/").append(objectName);
        return stringBuilder.toString();
    }
}

2. OSS-HDFS服务使用

2.1 基本概念

OSS-HDFS服务(JindoFS服务)是一个云原生数据湖存储功能,完全兼容HDFS文件系统接口,满足大数据和AI等领域的数据湖计算场景。

2.2 功能特性
  • 回收站:误删除文件时,文件会转至回收站,支持自定义数据保存时间。
  • 导出清单:将文件清单导出为JSON文件,方便元数据统计分析。
  • 导出审计日志:记录客户端请求的查询、修改、删除文件元数据的操作审计日志。
  • 冷热分层存储:支持数据的冷热分层存储,降低总存储成本。
  • 元数据转换:支持将OSS元数据转换为OSS-HDFS元数据。
2.3 使用步骤
  1. 创建VPC环境:创建专有网络VPC并添加云服务器(ECS)实例。
  2. 安装Java环境:在ECS实例上安装JDK并配置环境变量。
  3. 安装SSH:安装并启用SSH服务。
  4. 安装Hadoop:下载并安装Hadoop。
  5. 配置Hadoop:配置Hadoop的core-site.xml文件,添加OSS-HDFS服务实现类和AccessKey。

配置示例

<configuration>
    <property>
        <name>fs.AbstractFileSystem.oss.impl</name>
        <value>com.aliyun.jindodata.oss.JindoOSS</value>
    </property>
    <property>
        <name>fs.oss.impl</name>
        <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value>
    </property>
</configuration>
  1. 访问OSS-HDFS服务:使用Hadoop命令行工具访问OSS-HDFS服务。

示例命令

# 新建目录
hdfs dfs -mkdir oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/

# 上传文件
hdfs dfs -put /root/workspace/examplefile.txt oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/examplefile.txt

# 查看目录信息
hdfs dfs -ls oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/

# 查看文件信息
hdfs dfs -ls oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/examplefile.txt

# 查看文件内容
hdfs dfs -cat oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/examplefile.txt

# 拷贝目录或文件
hdfs dfs -cp oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/subdir1/  oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/subdir2/subdir1/

# 移动目录或文件
hdfs dfs -mv oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/srcdir/  oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/destdir/

# 下载文件
hdfs dfs -get oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt  /tmp/

# 删除目录或文件
hdfs dfs -rm oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/destfolder/
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
目录
相关文章
|
存储 监控 API
oss教程
oss教程
1320 1
|
存储 安全 API
oss客户端加密密钥管理
阿里云OSS数据加密涉及SSE-C和SSE-KMS两种方案。SSE-C中,客户端自动生成并管理DEK,负责加密和解密数据,需确保密钥的安全存储和访问控制。SSE-KMS则利用KMS生成和管理密钥,客户端通过API请求加密/解密密钥,实现更安全的密钥管理。无论哪种方式,都需要遵循密钥生命周期管理、访问控制、安全存储和定期轮换等最佳实践。选择SSE-C需要客户端有安全的密钥存储,而SSE-KMS则需关注与KMS的API交互和访问策略。
479 3
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
10607 2
|
应用服务中间件 网络安全 PHP
阿里云服务器购买和使用图文详解
随着科技的迅猛发展和互联网的普及,云计算成为当今社会中不可或缺的一部分。阿里云作为领先的云计算服务提供商,在满足各种需求的同时,也成为了许多组织和个人不可或缺的选择。现在这个时代,用到阿里云服务器的地方有很多。
933 2
阿里云服务器购买和使用图文详解
|
存储 Java 对象存储
springboot配置阿里云OSS存储实现文件上传下载功能
【1月更文挑战第1天】springboot配置阿里云OSS存储实现文件上传下载功能
4110 3
|
5月前
|
存储 安全 前端开发
SpringBoot阿里云OSS文件上传实例
本文介绍了通过阿里云OSS实现用户头像上传的功能。首先概述了OSS的特点,如高持久性、RESTful API支持及多种存储类型。接着详细描述了前期准备步骤,包括注册阿里云账号、实名认证、开通OSS服务、创建Bucket及AccessKey。注意事项中提到需调整Bucket的访问权限以支持前端访问。最后提供了基于SpringBoot的代码实现,包含配置文件与上传工具类的编写,帮助开发者快速集成OSS文件上传功能。
1285 1
SpringBoot阿里云OSS文件上传实例
|
Cloud Native Java 开发工具
云原生 阿里云分布式文件系统 对象存储OSS 服务配置
【1月更文挑战第8天】云原生 阿里云分布式文件系统 对象存储OSS 服务配置
|
存储 Java 开发工具
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
阿里云OSS(Object Storage Service)是一种安全、可靠且成本低廉的云存储服务,支持海量数据存储。用户可通过网络轻松存储和访问各类文件,如文本、图片、音频和视频等。使用OSS后,项目中的文件上传业务无需在服务器本地磁盘存储文件,而是直接上传至OSS,由其管理和保障数据安全。此外,介绍了OSS服务的开通流程、Bucket创建、AccessKey配置及环境变量设置,并提供了Java SDK示例代码,帮助用户快速上手。最后,展示了如何通过自定义starter简化工具类集成,实现便捷的文件上传功能。
3371 7
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
|
域名解析 对象存储
OSS绑定自定义域名(基于阿里云)
OSS绑定自定义域名(基于阿里云)
1936 0
|
存储 Java API
阿里云oss简介和使用流程
本文档介绍了如何准备阿里云OSS(对象存储服务)并开始使用它。首先,需要注册阿里云账号并进行实名认证,然后购买OSS资源包。在阿里云控制台中,可以创建和管理OSS存储空间(称为“Bucket”)。接着,文章简要介绍了阿里云OSS,它是一个基于云端的对象存储服务,提供高可靠性、高性能、低成本和易于使用的特性。 在阿里云OSS控制台,用户可以进行文件的上传和下载操作。通过API,开发者可以使用各种编程语言(如Java)来创建、删除Bucket以及上传、下载和删除文件。例如,Java代码示例展示了如何创建Bucket、上传文件、删除文件以及下载文件到本地的操作。