簡體   English   中英

Spring Cloud Config,如何從git存儲庫中獲取二進制文件

[英]Spring Cloud Config, how to fetch binary files from git repository

Spring cloud-config-server有一個內置的機制來與 git 存儲庫通信並讀取存儲在那里的文件。 然后cloud-config-server也有內置的機制來向客戶端(通常是 spring boot 應用程序)公開端點,客戶端可以讀取這些文件並將它們用作配置。

從下面可以看出,這在 spring 文檔中有詳細記錄。

根據文件

Spring Cloud 配置服務器

Spring Cloud Config Server 為外部配置(名稱-值對或等效的 YAML 內容)提供基於 HTTP 資源的 API。

記錄了服務格式

提供替代格式

來自環境端點的默認 JSON 格式非常適合 Spring 應用程序使用,因為它直接映射到環境抽象。 如果願意,您可以通過向資源路徑添加后綴(“.yml”、“.yaml”或“.properties”)來使用與 YAML 或 Java 屬性相同的數據。 這對於不關心 JSON 端點的結構或它們提供的額外元數據的應用程序的使用很有用(例如,不使用 Spring 的應用程序可能會受益於這種方法的簡單性)。

它還可以支持txt格式

提供純文本

您的應用程序可能需要針對其環境定制的通用純文本配置文件,而不是使用環境抽象(或 YAML 或屬性格式的替代表示之一)。

但是考慮到 spring cloud config 服務器具有與 git 存儲庫通信的內置機制,並且還向客戶端公開端點以使用交付的文件,其他類型的文件能夠從這些端點提供服務是有意義的出色地。

例如,它可以是.pdf.xslx甚至.zip

例如,假設配置的 git 存儲庫在featureA分支中包含文件myFile.zip 然后在/{application}/{profile}[/{label}]類型的暴露路徑下調用,例如serverUrl:serverPort/myApp/default/featureA/myFile.zip能夠傳送文件,但始終傳送為原始.txt文件,然后破壞 git 中存在的原始文件的內容。

我已經找到了解決方案,但在上面投入了很多時間,奇怪的是它沒有記錄在 spring 文檔中。 因此,存在於此可能是一件好事,可以為其他有相同問題的人騰出一些時間。

正如 本期討論的那樣, spring-cloud-config-server在普通spring-boot應用程序的幫助下在后台運行。 考慮到spring-boot內置了內容協商機制,它也能夠消費和生產不同的內容。

至於spring-cloud-config-server ,如果使用標頭Accept: application/octet-stream進行調用,則可以從 git 和其他文件(例如 zip、pdf、word、xlsx...) Accept: application/octet-stream 通過這種方式,對serverUrl:serverPort/myApp/default/featureA/myFile.zip的調用能夠傳送原始文件myFile.zip的副本,而不會造成任何損壞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM