S3 Browser介绍、基础操作

S3 Browser Pro 12.0.1: Key Features and Licensing Insights for Efficient Cloud Management S3 Browser Pro 12.0.1作为专业云存储管理工具,显著提升企业级用户的工作效率,支持多线程处理、生命周期规则管理和命令行同步等高级功能。其单机终身授权模式为企业提供高性价比解决方案,同时优化了Google Cloud兼容性和传输加速性能,确保数据安全与合规性。 阅读详情
AI摘要

本文介绍了S3Browser8-1-15,一个AmazonS3的客户端工具,用于管理S3存储桶和对象。内容包括客户端连接、上传下载文件的步骤,以及JAVA代码示例,展示了如何实现S3的连接、文件上传和下载功能。

一、S3 Browser 8-1-15 简介

S3 Browser 8-1-15是Amazon S3的客户端应用程序,用于管理和操作Amazon S3存储桶和对象。

二、安装包

下载地址:百度网盘 请输入提取码

提取码:9acn

三、基础操作

1)连接客户端

1、通过S3 Browser连接上客户端。

2、Account Name暂时不知道作用,应该是创建account时候固定的名称。

这里我用的已经创建的参数进行连接。

 

2)上传、下载

1、现在代码里用的桶是itpms的,路径需要自己创建。

2、创建路径

 支持链式创建目录:

3、上传文件

可以可视化界面上传,也可以直接拖拽文件到界面。

 4、下载文件

选中文件,点击Download

 

JAVA代码-上传下载

private boolean s3Enable = false;

@PostConstruct
    private synchronized void init() throws AppException {
        s3Enable = Boolean.valueOf(ConfigUtil.getConfigFromPropertiesFirst("CONFIG_S3_ENABLE", "true"));

        if (s3Enable) {
            SysParameter accessKeyParamter = "S3_ACCESSKEY";
            SysParameter secretKeyParamter = "S3_SECRETKEY";
            SysParameter bucketNameParamter = "S3_BUCKETNAME";
            SysParameter endpointParamter = "S3_ENDPOINT";
            SysParameter bufferSizeParamter = "S3_BUFFER");
            SysParameter archiveWsdlLocationParamter = "CONFIG_ARCHIVE_WSDL_LOCATION";
            SysParameter s3EnableParameter = "CONFIG_S3_ENABLE";
            checkSysParameter(accessKeyParamter, secretKeyParamter, bucketNameParamter, endpointParamter,
                bufferSizeParamter, archiveWsdlLocationParamter, s3EnableParameter);

            accessKey = accessKeyParamter.getPvalue();
            secretKey = secretKeyParamter.getPvalue();
            bucketName = bucketNameParamter.getPvalue();
            endpoint = endpointParamter.getPvalue();
            bufferSize = Integer.valueOf(bufferSizeParamter.getPvalue());
            archiveWsdlLocation = archiveWsdlLocationParamter.getPvalue();
            s3Enable = Boolean.valueOf(s3EnableParameter.getPvalue());

            AmazonS3 conn = getS3();
            if (!conn.doesBucketExist(bucketName)) {
                LOGGER.info("Bucket name:[{}] 不存在,新建该Bucket", bucketName);
                conn.createBucket(bucketName);
            }
            LOGGER.info("初始化S3客户端完成,Endpoint:[{}], Bucket name:[{}],", endpoint, bucketName);
        } else {
            LOGGER.info("不启用S3客户端。");
        }

    }


private AmazonS3 getS3() {
        AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
        ClientConfiguration clientConfig = new ClientConfiguration();
        clientConfig.setProtocol(Protocol.HTTP);
        EndpointConfiguration endpointConfiguration = new EndpointConfiguration(endpoint, Regions.CN_NORTH_1.getName());

        AmazonS3 conn = AmazonS3Client.builder().withEndpointConfiguration(endpointConfiguration)
            .withClientConfiguration(clientConfig).withCredentials(new AWSStaticCredentialsProvider(credentials))
            // 是否使用路径方式
            .withPathStyleAccessEnabled(Boolean.TRUE)
            .build();
        return conn;
    }


/**
     * 文件下载
     *
     * @param path
     * @param response
     * @throws AppException
     */
    @Override
    public void fileDownload(String path, HttpServletResponse response) throws AppException {
        // path是指欲下载的文件的路径。
        File file = new File(path);
        String fileName = file.getName();

        // 取得文件名。
        LOGGER.info("下载文件名:{}", fileName);
        LOGGER.info("下载S3文件路径:{}", path);

        // 如果本地有存,无需下载
        if (file.exists()) {
            try (InputStream is = new BufferedInputStream(new FileInputStream(file))) {
                downloadFile(response, fileName, is);
            } catch (Exception e) {
                throw new AppException("Download file err. ", e);
            }
        } else {
            if (s3Enable) {
                path = formatS3Filename(path);

                LOGGER.info("format之后S3文件路径:{}", path);
                AmazonS3 conn = getS3();

                try {

                    S3Object s3Object = conn.getObject(new GetObjectRequest(bucketName, path));
                    if (s3Object != null) {
                        LOGGER.debug("s3_content-type : {}", s3Object.getObjectMetadata().getContentType());
                        LOGGER.debug("s3_etag : {}", s3Object.getObjectMetadata().getETag());
                        LOGGER.debug("s3_content_length : {}", s3Object.getObjectMetadata().getContentLength());

                        // 创建文件夹和文件
                        FileUtils.createFolderAndFile(file);
                        try (InputStream is = s3Object.getObjectContent();
                            OutputStream os = new BufferedOutputStream(new FileOutputStream(file))) {
                            IOUtils.copy(is, os);
                        } catch (IOException e) {
                            LOGGER.error("下载文件报错", e);
                            throw new AppException("下载文件报错", e);
                        }

                        if (file.exists()) {
                            try {
                                InputStream downloadFileIs = new FileInputStream(file);
                                downloadFile(response, fileName, downloadFileIs);
                            } catch (FileNotFoundException e) {
                                throw new AppException("下载文件报错", e);
                            }
                        }
                    }
                } catch (SdkClientException | IOException e) {
                    throw new AppException("下载文件失败", e);
                }
            }

        }
    }

private String formatS3Filename(String path) {
        if (path == null) {
            return null;
        }
        path = FilenameUtils.separatorsToUnix(path);
        path = path.startsWith("/") ? path.substring(1) : path;
        return path;
    }


private void downloadFile(HttpServletResponse response, String fileName, InputStream is) throws AppException {
        try (InputStream inputStream = new BufferedInputStream(is);
            OutputStream outputStream = response.getOutputStream()) {
            fileName = new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
            response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", fileName));
            response.setContentType("multipart/form-data");
            response.setCharacterEncoding("UTF-8");

            byte[] buffer = new byte[bufferSize];
            int length = -1;
            while ((length = inputStream.read(buffer)) > 0) {
                outputStream.write(buffer, 0, length);
            }

        } catch (IOException e) {
            LOGGER.error("Download file from s3 err. ", e);
            throw new AppException("下载文件失败", e);
        }
    }



/**
     * 文件上传
     *
     * @param request
     * @throws IOException
     * @throws IllegalStateException
     */
    @Override
    public File fileUpload(String uploadDir, HttpServletRequest request) throws AppException {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
        MultipartFile file = multipartRequest.getFile("file");
        if (file == null) {
            return null;
        }
        try {
            File targetFile = FileDownAndUpload.filedUpload(uploadDir, multipartRequest);
            String bigRealFilePath = targetFile.getPath();
            if (s3Enable) {
                return fileSaveByPath(bigRealFilePath, targetFile);
            } else {
                return targetFile;
            }
        } catch (Exception e) {
            LOGGER.error("上传文件失败", e);
            throw new AppException("上传文件失败", e);
        }

    }



 /**
     * 文件上传,仅支持服务器本地存储,不支持分布式存储,在分布式环境下可能找不到文件。
     *
     * @param request
     * @throws IOException
     * @throws IllegalStateException
     */
    @Deprecated
    public static File filedUpload(String uploadDir, HttpServletRequest request)
        throws AppException, IllegalStateException, IOException {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
        MultipartFile file = multipartRequest.getFile("file");
        // file= new String(file.getBytes("ISO-8859-1 ","UTF-8"));
        if (file == null) {// step-2 判断file
            return null;
        }
        String orgFileName = file.getOriginalFilename();
        orgFileName = (orgFileName == null) ? "" : orgFileName;
        Pattern p = Pattern.compile("\\s|\t|\r|\n");
        Matcher m = p.matcher(orgFileName);
        orgFileName = m.replaceAll("_");
        if (!(new File(uploadDir).exists())) {
            new File(uploadDir).mkdirs();
        }
        String sep = System.getProperty("file.separator");

        String timestring = DateUtils.formatDate(new Date(), "yyyyMMddHHmmssSSS");

        String bigRealFilePath =
            uploadDir + (uploadDir.endsWith(sep) ? "" : sep) + timestring + "_" + file.getOriginalFilename();

        logger.info("上传文件路径:" + bigRealFilePath);

        // 文件非空判断
        /* if (file.getSize() > 0) { */
        File targetFile = new File(bigRealFilePath);

        file.transferTo(targetFile);// 写入目标文件

        // 重命名
        // File newfile = ReName(targetFile);

        return targetFile;
    }

S3Browser配置、使用与允许跨域设置 背景:ceph+S3是一套常用的对象存储方式,S3提供的接口比ceph底层的librados用起来更方便,而且支持Windows使用,尤其是S3做了存储服务的客户端S3Browse,可以十分方便的使用和管理你的bucket。 1.S3Browser配置 下载安装好S3Browser以后,点击左上角account,add或者manage account,在下图页面进行配置,配置对了就能连接上。 如果是与ceph对接,那么中间的access_key和secret_key就填你创建radosgw-admin u 阅读详情

相关推荐

对象存储:5款好用S3客户端,推荐给你

s3curl 是命令行工具,开源免费使用,非常轻量,也是我平时用的最多的一个工具。本质这个不算一个客户端工具,而是针对s3协议封装的文件网关,本质上是一个 c/c++ 实现的 fuse 项目,对外提供 posix 文件系统,后接的通过 s3 协议连接的对象存储,s3fs 只是做了一个协议转换。Cyberduck是一款带图形界面的FTP客户端软件,目前有windows版和mac版, 支持 FTP, SFTP, WebDAV, 云文件, Google Docs 和 Amazon S3 浏览器等相关协议。

GIS摆渡人 4447

Windows平台使用S3Browser连接兼容的对象存储

本文记录了在Windows平台使用S3Browser连接兼容的对象存储的过程。

forestqq的博客 4932

一文吃透 BMS:动力电池与储能共用的电池管控全架构详解

BMS作为电池系统的核心控制器,其技术深度和系统复杂性不容小觑。动力电池与储能系统虽然应用场景不同,但在核心架构上共享大量基础技术。成功的BMS设计需要在精度、可靠性、成本、功耗之间找到最佳平衡点。未来,随着电池技术的进步和智能化需求的提升,BMS将向着更高集成度、更强智能化、更优经济性的方向发展。无论是汽车工程师还是储能系统设计师,深入理解BMS的全栈架构,掌握其核心技术原理,都将是应对未来能源存储挑战的关键能力。核心要点回顾BMS采用分层分布式架构,硬件是基础,算法是灵魂。

小帽子的博客 338

【免费下载】 S3Browser: 简单易用的S3对象存储管理工具

S3Browser是一款开源、免费、跨平台的S3对象存储管理工具,由[@powdahound](https://link.gitcode.com/i/66b93b52c97fa479a45094a117f98066)开发并维护。该项目旨在为用户提供一个简单、直观且功能丰富的界面,以方便管理和操作AWS S3、Minio等兼容S3的对象存储服务。 ## 主要功能 S3Browser支持以下主要功...

gitblog_00001的博客 5102

手把手教你为FPGA项目集成HyperRAM IP核:从AXI接口封装到上板调试全流程

本文详细介绍了如何为FPGA项目集成HyperRAM IP核,涵盖从AXI接口封装到上板调试的全流程。通过对比DDR3L、PSRAM和HyperRAM的性能指标,突出HyperRAM在低功耗和小封装尺寸方面的优势,并提供硬件连接、AXI4-Lite接口设计、状态机优化及调试技巧等实用内容,帮助开发者高效完成FPGA项目中的内存扩展。

weixin_32103009的博客 284

光伏逆变器在环测试解决方案

光伏行业是利用太阳能光辐射将其转化为可用电能的行业。近年来,为应对气候变化和能源安全等挑战,全球对清洁能源的需求不断增长。太阳能作为最具潜力和可再生的能源之一,被视为替代传统化石能源的重要选择,光伏行业因此得到了迅猛发展,并在全球范围内得到了广泛应用。许多国家和地区都将光伏技术作为关键的能源发展方向。尤其是在新兴和发展中国家,光伏发电具有巨大的增长潜力,将成为未来市场竞争的重点。随着规模化生产的推进,光伏组件的制造成本不断降低。

shiwei0813的博客 959

【免费下载】 S3 Browser 介绍与基础操作指南

本文档旨在介绍 S3 Browser 的基本功能和操作步骤,帮助用户快速上手使用该工具进行 Amazon S3 存储桶和对象的管理。 ## 1. S3 Browser 简介 S3 Browser 是一款适用于 Amazon S3 的客户端应用程序,主要用于管理和操作 Amazon S3 存储桶和对象。它提供了一个直观的用户界面,使用户能够轻松地上传、下载、删除和管理存储在 S3 中的文件和文件...

gitblog_06555的博客 544

Cadence仿真笔记(二):传统noise仿真—共源极的噪声

cadence中进行传统噪声仿真

Bao_xue的博客 1万+

用S3Browser对S3做数据同步

参考文档:https://s3browser.com/s3cmd.aspx#sync 首先下载安装S3 Browser, 然后添加S3账户信息 保存后试试看能否访问bucket及文件 成功后就可以开始写脚本,比较简单: s3browser-con.exe sync your-s3-broswer-account-name s3:bucket/folder/s

数据之路 6158

【已解决】Claude应用地区限制问题:通过Slack注册与魔法节点切换实战指南

本文详细介绍了如何通过Slack注册和切换魔法节点解决Claude应用地区限制问题。从Slack账号注册、创建工作区技巧,到突破地区限制的关键步骤和成功后的配置使用,提供了全面的实战指南。特别强调了节点选择和网络环境对解决'App unavailable'错误的重要性,帮助用户顺利使用Claude AI助手。

weixin_29209801的博客 1751

不用Root也能抓包?Android高版本HTTPS抓包的3种替代方案(含Charles技巧)

本文针对Android高版本HTTPS抓包难题,提供了三种无需Root权限的实战解决方案:利用VirtualXposed等虚拟沙盒环境、配置Postern等系统级代理工具,以及通过修改应用源码或网络安全配置。文章还详细解析了Charles抓包工具在非Root环境下的高级配置与排错技巧,帮助开发者在遵守安全规范的前提下,有效进行网络调试与监控。

http9protocoller的博客 645

S3 Browser安装流程

(2)准备华北一:相关文档链接:准备公钥私钥:(3)填写对应信息链接上就好了其他相关操作:

2302_79680517的博客 466

扣子(Coze)实战:自动化拆解抖音对标账号,输出完整报告(附源码下载)

本文要分享的工作流,可以实现对标账号的拆解与分析,最后输出一份完整的分析报告,报告中包含有账号基本信息、账号定位、人设设计、选题方向、内容结构、变现路径以及优化建议等。

MCC_MCC_MCC的博客 2827

【S3 Browser 详细使用指南】 Windows 平台下的 AWS S3 管理利器

S3 Browser是一款专为Windows设计的Amazon S3图形化管理工具,提供比AWS控制台更高效的批量操作、断点续传和权限管理功能。本文详细介绍了其安装配置、账户连接、基本操作(如存储桶管理、文件传输)和高级功能(权限管理、数据同步、版本控制等),并提供了性能优化技巧、常见问题解决方案及安全、成本、操作规范等最佳实践建议,帮助用户充分利用这款工具提升S3管理效率。

weixin_74256690的博客 5674

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

S3Browser使用手册

来源:https://sf.163.com/help/documents/105041517828296704。点击对象是抛403错误是正常的,因为我们不支持对象的Acl,不允许此操作。只支持图中的1和2,且不能同时使用,如果同时选中,以第一个为准。选中项下载的对象,右键,选择下载,选择文件加就会开始下载。如果选择目的桶为对象所在桶,那么就说明都不做。2.设置桶名:桶的命名规范参见API文档。点击Upload,选择想上传的文件即可。点击删除桶,输入桶名,勾选复选框。

优快云资源内容 1181

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

AWS S3常用功能总结回顾

Aws s3常用功能总结与代码示例

u013551615的博客 2386

腾讯云对象存储的创建和S3 Browser的使用

对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。

Ilson_的博客 3410

从零开始:如何利用S3 Browser Pro高效管理你的云存储资源

本文详细介绍了如何利用S3 Browser Pro高效管理Amazon S3和CloudFront云存储资源。从安装配置、多账户管理到数据安全与传输优化,全面解析了该Windows客户端的核心功能和实战应用场景,帮助用户提升云存储管理效率。

weixin_29216049的博客 271

从S3Browser到Python脚本:我如何用Boto3把重复的文件管理任务自动化(实战心得)

本文分享了如何利用Python的Boto3库将S3文件管理任务自动化,从图形界面转向脚本化的实战经验。通过具体代码示例,展示了文件归档、过期清理等高频操作的自动化实现,显著提升效率并减少人为错误。适合中小团队开发者学习如何用Python简化重复工作流程。

weixin_30836759的博客 455

S3数据桶是哪方神圣

华丽的概念最终还是要落地使用的,而工具的可视化使用过程会让大家更加容易的理解概念。本文不是说S3协议不好,相反通过工具的验证,大家会发现S3的并行上传下载速度非常快,对于文件管理比FTP强很多。总之,软件其实是一门实践型的工程学,学习软件技术光看概念不动手是不行的,而图形化工具会让动手更快捷更直接。最后祝大家学习使用软件顺利!!!!运维桌面工具套装软件DESK(https://www.deskui.com)集办公、运维、开发场景常用功能于一体的桌面工具软件。

DeskUI 1796

轻量级跨平台S3管理工具:解放生产力的对象存储可视化方案

当开发者还在为`aws s3 ls`命令的冗长输出发愁时,设计师正对着MinIO的API文档抓耳挠腮——**对象存储管理工具**的核心价值,本应是让技术与非技术用户都能高效掌控数据资产。S3Browser以「轻量级+跨平台」双引擎驱动,通过可视化界面消除云存储操作门槛,让AWS S3/MinIO资源管理像浏览本地文件夹一样简单。 ### 💡 为什么选择S3Browser? 传统管理方式

gitblog_00351的博客 991

Amason S3 (一)

Amason S31.简介2.优势3.处理工具S3 BrowserCloudBerry Explorer4. .NET开发 1.简介 Amazon S3(Simple Storage Service),是一个公开的服务云存储,云是一个抽象的概念,表示松散连接在一起的计算机组,这些计算机共同执行某项任务或者服务。Web 应用程序开发人员可以使用它存储数字资产,包括图片、视频、音乐和文档。提供一个 RESTful API 以编程方式实现与该服务的交互。 通过<key,value>键值对对每个文件唯一

RandyOliver's House 504

【文件服务】【AWS 亚马逊S3】---- S3对象存储可视化管理工具客户端大全+详细使用方法

的官方下载与安装步骤,均为官方渠道,安全可靠。以下是Windows系统下。

朱朱博客,分享技术 878

SpringBoot开发符合S3协议的文件存储服务

s3协议无标准说明文档,为rest风格,创建/删除/详情方法通过PUT/DELETE/HEAD表述很多方法共用一个路由,通过head参数区分(例如putObject和copyObject)参考aws的最新api文档:https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html实现以下基础功能Bucket创建Bucket删除文件上传文件删除文件下载文件分片操作(初始化/分片上传/合并)

月月鸟先森的博客 997
上一篇: JAVA后端使用echarts生成折线表格转成图片保存在本地
下一篇: 基于SpringBoot用iText7将HTML转成PDF添加页眉页脚水印
从乌托邦醒来
博客等级 码龄5年 45粉丝 26原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值