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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
5月前
|
存储 监控 API
oss教程
oss教程
240 1
|
5月前
|
Java API 开发工具
如何用阿里云 oss 下载文件
阿里云对象存储服务(OSS)提供了多种方式下载文件,以下讲解下各种方式的下载方法
4041 2
|
12月前
|
C# 对象存储
C#上传阿里云OSS工具类AliOSSTool
C#上传阿里云OSS工具类AliOSSTool
371 0
|
弹性计算 安全 Java
使用 OSS 的 bucket 进行文件上传下载|学习笔记
快速学习使用 OSS 的 bucket 进行文件上传下载
1210 0
|
2天前
|
存储 Java 开发工具
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
阿里云OSS(Object Storage Service)是一种安全、可靠且成本低廉的云存储服务,支持海量数据存储。用户可通过网络轻松存储和访问各类文件,如文本、图片、音频和视频等。使用OSS后,项目中的文件上传业务无需在服务器本地磁盘存储文件,而是直接上传至OSS,由其管理和保障数据安全。此外,介绍了OSS服务的开通流程、Bucket创建、AccessKey配置及环境变量设置,并提供了Java SDK示例代码,帮助用户快速上手。最后,展示了如何通过自定义starter简化工具类集成,实现便捷的文件上传功能。
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
|
数据可视化 Linux 对象存储
OSS常用工具汇总
总结了12款OSS常用工具,熟悉这些工具您可以更高效的使用OSS。
14003 0
|
5月前
|
存储 分布式计算 物联网
OSS一般常见问题
OSS一般常见问题
59 1
|
5月前
|
存储 弹性计算 API
OSS使用方式
OSS使用方式
67 2
|
5月前
|
存储 安全 Java
全面了解阿里云OSS使用方法
本文介绍了阿里云对象存储(OSS)的准备工作、服务开通、优势、使用步骤以及代码实现。首先,用户需要注册阿里云账号并进行实名认证,然后开通OSS服务,创建存储空间。阿里云OSS提供高可靠、安全、低成本的云存储,适合各种数据存储和分发场景。接着,通过官方SDK学习如何上传文件,并提供了Java代码示例。最后,展示了如何在Spring Boot项目中集成阿里云OSS,实现文件上传功能。
|
5月前
|
存储 缓存 Java
阿里云OSS实战从入门到大神
说起阿里云OSS,那作用和功能都是非常强大的,它可以存放图片,音频,视频等资源文件,这些资源文件,你不必存放到服务器的硬盘里,这样既可以节省服务器硬盘空间,又可以降低服务器的读写压力,非常适合大并发的架构。
182 0