报表控件FastReport VCL 中的新 S3 传输 (Amazon)

在本文中,我们将探讨新的 S3 传输。从功能上来说,S3 与大多数人习惯使用的有很大不同,因此在本文的开头,我们将详细介绍它的主要功能。

FastReport .NET 是适用于.NET Core 3,ASP.NET,MVC和Windows窗体的全功能报告库。使用FastReport .NET,您可以创建独立于应用程序的.NET报告。

    FastReport .net下载(qun:585577353)icon-default.png?t=N7T8https://www.evget.com/product/1861/download

它是什么?

S3 不是像 Dropbox、Google Drive、Mega 等那样的文件存储。S3是对象存储。首先,我们需要了解这两个概念之间的区别。

文件存储具有通常的分层(树)结构。即存储其他目录和文件的熟悉的目录(文件夹)。

对象存储相对较新(最古老的现在大约有 20 年历史)。它们的实现略有不同,因此大多数功能都是通用的,但有些功能仅适用于 S3。

所有对象存储都是“扁平的”,这意味着它们没有层次结构,尽管它们可以“模仿”它。

开始使用 S3 时您将遇到的第一个实体是 Bucket。最接近的类比是许多编程语言中的“Map”,其中通过键请求数据。一个桶只能存放自己的文件,不能存放其他桶的文件。

关于bucket

Bucket

Key

Data

video.mp4

Data

text_file.txt

Data

code.pas

Data

使用该密钥,您可以获得与其对应的元数据,并根据需要自行解释。更有趣的是在这样的系统中模仿分层文件夹结构。

Bucket

Key

Data

video.mp4

Data

folder1\text_file.txt

Data

folder1\video.mp4

Data

folder1\folder1_1\video.mp4

Data

folder2\text_file.txt

Data

folder1\

Empty

folder1\folder1_1\

Empty

folder2\

Empty

某些“文件夹”与文件是相同的对象。它们只是为了视觉清晰度而采用不同的颜色。然而,它们有一个显着特征——键末尾有一个斜杠 (\)。通常,这些“文件夹”不包含任何数据(尽管它们可以)。

要查看“文件夹”folder1 的内容,我们需要按键前缀“folder1\”进行过滤。但更有趣的是删除“文件夹”。如果我们尝试在 Web GUI 中删除“文件夹”folder1,某些服务会允许这样做,但其他服务会向我们显示错误“无法删除非空文件夹”。

如果我们通过 API 删除带有键“folder1\”的单个记录,大多数 GUI 将停止渲染该特定“文件夹”。我们也将无法访问它,但实际上,该“文件夹”内的文件仍然存在。一旦我们再次创建一个名为folder1的“文件夹”,它就已经包含了被遗忘的文件。该密钥几乎没有限制,例如,它可以是“”之类的内容。这些将是名称为空的“文件夹”。

为什么对象存储比文件存储更好?

1. 对象存储要便宜得多。每个对象不绑定到特定设备,因此对象存储可以轻松扩展到所需的容量。您可以轻松租用 PB(约 1,000,000 GB)的对象存储。

2. 对象存储的搜索速度非常快。但自然地,对象存储最适合用于非结构化(非树)数据。

新的认证系统

之前的所有传输均使用 OAuth 2 协议。理论上,S3 也可以与 OAuth 2 配合使用,但它的 API 中有内置的身份验证系统。OAuth 2 使用客户端 ID 和秘密 ID 获取存在一定时间并且可以签署任何请求的令牌。

S3 的内部身份验证使用相同的 Client ID 和 Secret ID,基于大约 30 个变量(包括令牌创建时间、所需操作等),使用 SHA256HMAC 为每个操作生成新的一次性令牌。服务器仅验证令牌的正确生成,如果服务器接收到的令牌与服务器本身生成的令牌匹配,则执行操作。此后,该令牌将无法再使用。

AWS S3

尽管该传输被命名为“TfrxS3IOTransport”,明确引用了AWS S3(Amazon Simple Storage Service),但它的API已被许多对象存储系统(可以宽松地称为类S3)复制,因此该传输允许您工作不仅有亚马逊的服务。

向应用程序及其配置添加传输

首先,您需要从“FastReport VCL Internet Transports”选项卡添加适当的组件。

向表单添加组件

您可以使用组件上的上下文菜单。它将直接从开发环境建立连接。单击“编辑连接”子菜单。

调用传输上下文菜单

S3 连接对话框

当您需要使用传输打开或保存到文件时,将可以使用以下标准授权对话框(如果之前没有授权)。

标准授权对话框

让我们看看这个表单的所有独特字段:

服务器 URL — API 中使用的 URL。要找到 URL,您需要阅读文档;对于 AWS S3,默认情况下应为“s3.amazonaws.com”。

客户端 ID — 用于授权的公钥(通常称为访问密钥)。

秘密 ID — 用于授权的秘密密钥(通常称为秘密访问密钥)。

区域- 您需要阅读文档以了解可能的区域值。有时,会有不寻常的要求:例如,在AWS S3中,您只能请求具有“us-east-1”区域的存储桶列表。

Bucket——为了不用每次都手动选择Bucket,可以在此字段指定;有时桶具有特定区域的特征。

存储桶样式— 指定存储桶有 2 种类型:路径样式 (aws.s3.com/bucket )和虚拟托管样式 ( bucket.aws.s3.com。“路径样式”被认为已过时,因为通过特定的 DNS,可以向不同的存储桶发出多个请求,这可能会产生额外的负载。有些服务支持两种类型,有些只支持一种,有些可以针对不同的情况进行配置。 您可以在以下链接中了解这一点。

如果连接成功,您将看到标准的FastReport VCL文件浏览器(下面的屏幕截图显示了存储桶内的文件列表)。

标准文件浏览器FastReport VCL

这样就成功完成了连接设置。现在您知道如何在 FastReport VCL 中连接到 S3。

只需要注意我们实施的最后细微差别即可。我们团队还没有实现创建和删除桶。到目前为止,存储桶在视觉上与文件夹(在我们的第一个 GUI 版本中)没有什么不同,因为它风险太大。此外,删除文件夹及其内容尚未实现。此外,缺少分段上传大文件的功能(建议大于 100 MB 的文件)。

这种传输有许多配置细节和细微差别,但在某些情况下它可以是文件存储的替代方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/588172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试/测试开发丨Python内置库学习笔记

内置库 一、内置库OS 1、os概述 os: Operating Systemos 模块的常用功能跨平台的差异 2、os使用 导入 os 模块查看 os 模块使用文档 help(os)dir(os) import os# 查看os模块说明文档 help(os)# 查看os模块的属性和方法 print(dir(os))3、os 常用方法 (1&…

全渠道客服系统推荐:选型指南与最佳实践分享

售后服务是影响客户满意度的最直接的因素。有些企业不注重产品的售后服务,不仅是对客户的伤害,更是对企业品牌的损害。所以,做好售后服务对于企业来讲至关重要。 企业谈到做好售后服务,少不了一款好用的客服系统工具。其中&#…

C# PrinterSettings修改打印机纸张类型,paperType

需求:直接上图,PrinterSettings只能改变纸张大小,打印质量,无法更改打印纸类型 爱普生打印机打印照片已经设置了最高质量,打印图片仍不清晰,需要修改打印纸类型,使用PrintDialog调出对话框&…

2023-12-30 AIGC-LangChain介绍

摘要: 2023-12-30 AIGC-LangChain介绍 LangChain介绍 1. https://youtu.be/Ix9WIZpArm0?t353 2. https://www.freecodecamp.org/news/langchain-how-to-create-custom-knowledge-chatbots/ 3. https://www.pinecone.io/learn/langchain-conversational-memory/ 4. https://de…

乒乓球室计时计费软件,乒乓球馆怎么计时

一,软件程序问答 1、软件有计时功能吗,有会员管理功能吗? 如下图,软件以 佳易王乒乓球馆计时计费软件 为例说明 软件既可以既可以计时计费,也可以会员管理,会员可以用卡片也可以直接用手机号即可。 2、软…

2023年度总结——关于如何认清自己是个FW

前言 不到各位有没有今年过得特别快的感觉。写总结时候一整理,我敲,我今年这么忙? 从三月份开说 三月份 这段时间刚开学,还算比较懵懂。不过初生牛犊不怕虎,那个寒假学了点怎么挖edusrc,开学迫不及待地…

SpireCV项目实战——电诈园区人员及房屋情况识别

项目介绍前言 随着科技的进步和大数据时代的到来,计算机视觉技术逐渐渗透到各个行业领域,为人们的生活和工作带来了诸多便利。近年来,电信诈骗案件频发,给社会带来了巨大的经济损失和心理负担。电诈园区作为电信诈骗的高发区域&a…

弱电工程计算机网络系统基础知识

我们周围无时无刻不存在一张网,如电话网、电报网、电视网、计算机网络等;即使我们身体内部也存在许许多多的网络系统,如神经系统、消化系统等。最为典型的代表即计算机网络,它是计算机技术与通信技术两个领域的结合。 计算机网络的…

Windows 10启用Hyper-V

Windows 10启用Hyper-V 官网教程PowerShell 启用 Hyper-V启用 Hyper-V 角色 我们知道VMware是创建虚拟机的好工具,那Windows平台上有没有虚拟工具呢? 今天我们要讲解的就是Windows才入局的虚拟工具:Hyper-V 官网教程 https://learn.microsof…

table表格中使用el-popover 无效问题解决

实例只针对单个的按钮管用在表格里每一列都有el-popover相当于是v-for遍历了 所以我们在触发按钮的时候并不是单个的触发某一个 主要执行 代码 <el-popover placement"left" :ref"popover-${scope.$index}"> 动态绑定了ref 关闭弹窗 执行deltask…

【数据结构和算法】找出两数组的不同

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 哈希类算法题注意事项 2.2 方法一&#xff1a;哈希法 三、代码 3.1 方法一&#xff1a;哈希法 四…

Linux文件类型

在 Linux 系统中&#xff1a; b 文件类型&#xff1a;代表块设备文件。块设备文件通常是对应于设备&#xff0c;如硬盘驱动器或其他块设备&#xff0c;使用块级别的 I/O 操作。 c 文件类型&#xff1a;代表字符设备文件。字符设备文件通常是对应于设备&#xff0c;如串口、键盘…

[年终总结]人生就是大闹一场

讲真的,感觉过去这一年的体验,非常精彩,哈哈哈哈 体验了 裸辞,并没有想象中那么可怕,也没有想象中那么焦虑 经历了 入职之后又被裁员,心情没有那么大的起伏 解锁了 深圳/佛山/珠海/澳门/昆明/大理/新疆/成都 ,见了很多人,碰撞出了很多 idea 体会了 没有目的的去做一件事情,是什…

GitHub的2FA验证问题解决工具

文章目录 前言认识2FA开源工具使用&#xff1a;AuthenticatorPro获取AuthenticatorPro的安卓APK如何使用 参考文章 前言 打开GitHub跳出来这个提示&#xff0c;需要进行验证&#xff1a; 如何解决呢&#xff1f;方案有很多&#xff0c;我们可以使用开源的一个工具&#xff1a;…

java图书管理系统

主要模块&#xff1a; 为用户开通借书服务增加图书信息登记图书借出信息 技术栈&#xff1a; JSPServletTomcat9.0IDEAMysql 前台登录验证使用框架 数据库脚本包括登录用户名和密码已经写在了数据库脚本.sql 中 解压“需要的jar包”添加到项目的dependency中 运行效果&a…

2023年度总结———豫见及遇见

目录 一.AI 人工智能方向 二.华为数通网络方向 三.腾讯云AI绘画方向 四.年度心得总结板块 博主C站主页&#xff1a;知孤云出岫_网络,计算机,计算机网络教案-CSDN博客 博主腾讯云主页&#xff1a; 知孤云出岫 - 个人中心 - 腾讯云开发者社区-腾讯云 2023年年度词&#xff1a…

移动端开发框架mui代码在安卓模拟器上运行(HbuilderX连接到模拟器)

开发工具 HBuilder X 3.8.12.20230817 注意&#xff1a;开发工具尽量用最新的或较新的。太旧的版本在开发调试过程中可能会出现莫名其妙的问题。 1、电脑下载安装安卓模拟器 我这里使用的是 夜神模拟器 &#xff0c;也可以选择其他安卓模拟器 夜神模拟器官网&#xff1a;夜神安…

阿贝云免费云服务器

最近体验了一下阿贝云的免费云服务器&#xff0c;总体感受是简单易上手。感兴趣的小伙伴们可以赶紧注册体验一下。 阿贝云官网&#xff1a; https://www.abeiyun.com 下图是我亲测的免费云服务器管理界面&#xff0c;免费云服务器的配置信是1核1GB&#xff0c;硬盘10GB&#x…

ssm基于web的马病管理系统设计与实现+jsp论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;马病信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广大…

【测试基础】构造测试数据之 MySQL 篇

构造测试数据之 MySQL 篇 作为一名测试工程师&#xff0c;我们经常会构造测试数据进行一些功能验证。为了暴露更多的问题&#xff0c;在测试数据的构造上&#xff0c;我们应该尽可能的构造不同类型字段的数据&#xff0c;且一张表的字段最好不低于 10 10 10 个。 对于 MySQL …