翻譯|行業資訊|編輯:胡濤|2023-12-29 10:25:30.200|閱讀 83 次
概述:在本文中,我們將探討新的 S3 傳輸。從功能上來說,S3 與大多數人習慣使用的有很大不同,因此在本文的開頭,我們將詳細介紹它的主要功能。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在本文中,我們將探討新的 S3 傳輸。從功能上來說,S3 與大多數人習慣使用的有很大不同,因此在本文的開頭,我們將詳細介紹它的主要功能。
FastReport .NET 是適用于.NET Core 3,ASP.NET,MVC和Windows窗體的全功能報告庫。使用FastReport .NET,您可以創建獨立于應用程序的.NET報告。
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 為每個操作生成新的一次性令牌。服務器僅驗證令牌的正確生成,如果服務器接收到的令牌與服務器本身生成的令牌匹配,則執行操作。此后,該令牌將無法再使用。
盡管該傳輸被命名為“TfrxS3IOTransport”,明確引用了AWS S3(Amazon Simple Storage Service),但它的API已被許多對象存儲系統(可以寬松地稱為類S3)復制,因此該傳輸允許您工作不僅有亞馬遜的服務。
首先,您需要從“FastReport VCL Internet Transports”選項卡添加適當的組件。
您可以使用組件上的上下文菜單。它將直接從開發環境建立連接。單擊“編輯連接”子菜單。
當您需要使用傳輸打開或保存到文件時,將可以使用以下標準授權對話框(如果之前沒有授權)。
讓我們看看這個表單的所有獨特字段:
服務器 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文件瀏覽器(下面的屏幕截圖顯示了存儲桶內的文件列表)。
這樣就成功完成了連接設置?,F在您知道如何在 FastReport VCL 中連接到 S3。
只需要注意我們實施的最后細微差別即可。我們團隊還沒有實現創建和刪除桶。到目前為止,存儲桶在視覺上與文件夾(在我們的第一個 GUI 版本中)沒有什么不同,因為它風險太大。此外,刪除文件夾及其內容尚未實現。此外,缺少分段上傳大文件的功能(建議大于 100 MB 的文件)。
這種傳輸有許多配置細節和細微差別,但在某些情況下它可以是文件存儲的替代方案。
FastReport技術QQ群:585577353
了解更多報表開發控件,歡迎咨詢
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn