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/
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
7月前
|
存储 监控 API
oss教程
oss教程
274 1
|
7月前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
5128 2
|
存储 安全 API
阿里云oss存储简介和如何使用
阿里云OSS存储服务是一种安全、稳定、高效的云存储服务,适用于各种规模的应用和业务场景。它具备出色的持久性和可用性,可以为用户提供高可靠、低成本的存储解决方案。阿里云OSS存储具有广泛的应用场景
3287 0
|
C# 对象存储
C#上传阿里云OSS工具类AliOSSTool
C#上传阿里云OSS工具类AliOSSTool
392 0
|
弹性计算 安全 Java
使用 OSS 的 bucket 进行文件上传下载|学习笔记
快速学习使用 OSS 的 bucket 进行文件上传下载
1244 0
|
7月前
|
存储 分布式计算 物联网
OSS一般常见问题
OSS一般常见问题
75 1
|
7月前
|
存储 弹性计算 API
OSS使用方式
OSS使用方式
83 2
|
7月前
|
存储 安全 Java
全面了解阿里云OSS使用方法
本文介绍了阿里云对象存储(OSS)的准备工作、服务开通、优势、使用步骤以及代码实现。首先,用户需要注册阿里云账号并进行实名认证,然后开通OSS服务,创建存储空间。阿里云OSS提供高可靠、安全、低成本的云存储,适合各种数据存储和分发场景。接着,通过官方SDK学习如何上传文件,并提供了Java代码示例。最后,展示了如何在Spring Boot项目中集成阿里云OSS,实现文件上传功能。
|
7月前
|
存储 缓存 Java
阿里云OSS实战从入门到大神
说起阿里云OSS,那作用和功能都是非常强大的,它可以存放图片,音频,视频等资源文件,这些资源文件,你不必存放到服务器的硬盘里,这样既可以节省服务器硬盘空间,又可以降低服务器的读写压力,非常适合大并发的架构。
209 0
|
人工智能 安全 对象存储
OSS(一):OSS工具类
阿里云现在很多公司都在用,阿里云稳定,安全,相对来说成本更低;给自己更多思考的是如何让项目减少成本,以及阿里云等带来的商业模式。
1080 1