搜尋

搜尋結果

生蠔泛濫丹麥人不高興 中國網民:發放生蠔簽證 5年內保證消滅
走遍世界
Jackst・2017-04-27

丹麥駐中國大使館官方微博24日貼文說,近來海岸太平洋生蠔泛濫,鼓勵民眾用「吃」來消滅這些生蠔,但大家都很冷漠。超想吃的中國網友呼籲丹麥核發「生蠔簽證」,保證5年消滅生蠔。 丹麥駐中國大使館微博24日發出以「生蠔長滿海岸,丹麥人卻一點也高興不起來」為標題的文章,引發中國網友瘋狂轉載、熱議與迴響。 有中國網友就貼文說,「把簽證放寬,開闢吃生蠔簽證,10年內無限次往返,每次停留最長1個月,我估計5年差不多就消滅這些生蠔了。」 還有中國網友說,「肯定是你們丹麥人不會做,不可口,所以大家都不愛吃,看看我們四川每年吃小龍蝦,小龍蝦都不夠我們吃,請帶我們四川人去吃。」 這篇文章指出,太平洋生蠔原本是不屬於丹麥海域。這種新物種近年入侵到丹麥後,由於沒有天敵,在海岸邊肆意瘋長,想下水游泳的人得穿著鞋才能跨過牠們。丹麥本土的Limfjord生蠔也被牠們「擠兌死了」。 丹麥科學家和漁民已經向丹麥自然保護局投訴多次,但丹麥政府沒有辦法處理這些棘手的入侵者。丹麥官方鼓勵民眾去海岸邊採集這些生蠔帶回家煎炒烹炸,但沒有多少人這樣做,所以根本沒有效果。 這篇文章說,「我們鼓勵大家通過『吃』來消滅這些生蠔,但是大家都一張冷漠臉。」 這篇文章近來在中國微博瘋傳,中國網友熱議,有人貼文說,「你們在海邊建個旅館,讓中國人免費住,每天提供烹飪用具和火,用你們航空公司的飛機接中國人去你們那。什麼生物危機,保證你們以後地皮都是平。」 中國網友還說,「搞好進出口檢驗檢疫環節,大量出口到中國來吧!」「你們生蠔簽證什麼時候開始發,材料我都準備好了」、「蒜都扒好了」、「炭和油需要自己帶嗎?」 還有中國網友說,「所以生蠔簽證你們開不開?」「開了,入侵物種就從生蠔變成中國吃貨了」「芝士焗生蠔、炭燒生蠔、醬爆生蠔、白灼生蠔、酥炸生蠔、生蠔豆腐湯,生蠔乾燜香菇、香煎生蠔、生蠔粥,饞嘴。」

陳康妮:讓全人都知道斷捨離真正的意義與精神️
文化創意
陳康妮・2022-04-27

澳門斷捨離群組22000群友讓全澳門人都知道斷捨離正真的意義與精神️ 歡迎大家一起來學習斷捨離的智慧 在這裡其實想讓大家了解一下斷捨離這個Group是目前100%非盈利群組,完全沒有任何收入的(如果有想在這群做買賣歡迎自動退出) 。 只是當初設立這個斷捨離的Group的原因是因為2020年1月疫情剛開始時。一個人留在家看了日本的斷捨離這本書,就愛上了,認為感覺非常舒適,所以只是抱著一個簡單的一個念頭希望那麼好的東西,想讓澳門也能夠了解這個舒服的思維,讓大家都過得越來越好的想法。 2020年1月從自己一個人開始斷捨離一年的時間,2020年12月開始建立澳門缐上群組,也感謝大家一起進來互相學習,到現在人數一直不斷增加到現在超過22000人 我希望大家一起把這個群越做越好,想找一些跟我有一樣理念的人來一起努力來貢獻澳門社會。 希望澳門人生活越來越好,如果我們那裡有做的不足的地方,請多多包涵(畢竟管理員是義務的,大家都有自己的工作️) 本群群友需知道的事,避免被移除: 物物交換(因為這個是斷捨離的群,避免大家越換越多東西) 慈善捐獻(慈善是好事,但為善不為人知,避免要澄清自己的清白,當然我們鼓勵自己去做慈善) 環保地點(我相信還有很多更適合的環保群,除非有人問起,避免再循環公司來這裡進行廣告) 廣告買賣(還有很多適合做買賣的群更適合) 索取東西(這已經偏了斷捨離的宗旨,相信你也不喜歡在一個每天有人索取東西的群吧) 語言攻擊(希望大家在和諧的環境進行學習斷捨離,創造出一個溫馨的群組) 讓你的帖子順利通過歡迎大家斷捨離時註明: 1.免費送出(一定要註明,讓版主方便審核,因為有些人混進來做買賣,為了讓大家有和諧的環境斷捨離) 2.物品名稱(列出你的物品的名稱,方便大家了解) 3.自取地點(如果是自取,請明確的寫上區域) 4.物品的情況(希望老實的說明物品的狀況,比如:全新、二手、有一些瑕疵等等) 5.物品的實圖(盡可能的拍上清楚的物品照片,方便大家識別物品) 斷捨離,表面斷的是物品,但事實上你也在清理自身內心的雜念,我在此祝福每位斷捨離的群友們,身體健康,斷捨離愉快 溫馨提醒: 我是Connie ,我來自澳門,目前從事澳門教育工作行業,️而我接觸斷捨離持續2年的時間(還在努力中,希望跟大家一起學習) ,建立本群讓大家能夠更加方便做斷捨離交流,互相學習,互相認識,共同進步,(由於WhatsApp會顯示電話號碼,如果擔心隱私權。約交收時留電話請三思)。

Spring boot web api 異常處理
科技新知
MacauYeah・2025-10-28

我們在編寫程式時,經常會遇到一些極端的情況,不會經過 function 的方式回傳結果。例如一個 function 原本是提供讀檔功能,但用戶傳入的並不是一個有效的檔案路徑,又或是誰路徑權限不足,無法讀取。這些不正常的結果,並不是原本 function 所協定的回傳值。那麼,我們會拋出異常 Exception ,中斷所有被呼叫中的 function ,讓上層用戶去考慮怎樣處理這個問題。 在 Web API 中,這些 Exception 就更常見。要求用戶傳入的參數,用戶就是有時候少了幾個。覆寫資料的時候,原本的資料已被刪除。但我們現在是經過 Web Api,不能像過去一直向上拋出異常就能通知用戶。我們需要的,是把異常轉成對應的 Http Status Code,讓用戶端可以快速識別異常的類型。 java 異常對應 Http Response Code 其實在 spring boot web 中,要做轉譯,是很簡單的。在定義 java Exception的時候,若有@ResponseStatus,spring boot web 就會自動回應對應的 http error code。 @ResponseStatusHttpStatus.FORBIDDEN public class CustomAuthenticationException extends RuntimeException public CustomAuthenticationException public CustomAuthenticationExceptionString message supermessage; 以後,任何一個地方拋出 CustomAuthenticationException (假設上層沒有人攔截)都會把該 Controller 的結果改為 http 403。Spring boot 也很聰明的,把異常中的 message 隱藏 ,免得有網安的問題。 若我們定義 Exception 時,沒有@ResponseStatus,Controller 就會變成 http 500,例如我在 controller 中拋個常見的 IOException,這次的結果就會變成 http 500。 @GetMappingquot;apiioErrorquot; public String forceIOException throws IOException throw new IOExceptionquot;force io errorquot;; 如果某些時候,我們想使用 java Exception 中的 message 欄位作為報錯信息,讓 http 客戶端,可以通過固定的 message 檔位找到問題訊息,我們可以在application.properties中,加入server.error.includemessage=always。有些特殊情況,在開發模式時 mvn springbootrun ,已經可以見到有 Exception message,但在投産後java jar又看不到。主要因為開發模式中, pom 有 optional springbootdevtools,會自動加入了server.error.includemessage=always,但 mvn package 後就沒有,因為 runtime 沒有 springbootdevtools 的覆蓋。 額外處理 異常處理除了想控制 http status code 外,有時還需要做一些額外處理,例如發出通知郵件等。若想做額外處理,需要另做一個 @RestControllerAdvice 的類,在接到指定的 exception 時,可以轉換不同的 http code ,而且還可以執行額外 java code ,改變 http ResponseBody 。 @RestControllerAdvice public class GlobalExceptionHandler @ExceptionHandlervalue = RuntimeException.class @ResponseStatusHttpStatus.INTERNAL_SERVER_ERROR public Map handleRuntimeExceptionException ex return Map.ofquot;retquot;, false, quot;anyfieldsquot;, ex.getMessage; 但要注意,一旦使用@RestControllerAdvice 後,就要考慮有沒有改變了某些預設的行為。例如上述的@ExceptionHandlervalue = RuntimeException.class,代表所有RuntimException.class的子類,都會歸由該 function 所處理。當然,你也可以多加幾個 function 來處理不同的子類。 Reference springbootwebapivalidate

Docker Swarm - Private Registry 私有影像倉庫
科技新知
MacauYeah・2025-09-10

在構建投産環境時,如果 server 群沒有互聯網,又或對私隱很有要求,需要自建一個最簡單的 registry ,可以用這個。當然,那台機第一次必需經互聯網。架起後就可以斷網,並由其他 client 提送新的 registry image更新。 Registry Server 起動方式 最簡單的起動方式,但什麼都不設定。 docker run d p 50005000 name registry registry3 若想要加入 SSL,讓你的 client 不會認為它是不安全的 registry ,最簡易可以寫成 docker compose, 由 docker compose up d 執行。 # dockercompose.yml registry restart always image registry3 ports 50005000 environment REGISTRY_HTTP_TLS_CERTIFICATE certsdomain.crt REGISTRY_HTTP_TLS_KEY certsdomain.key volumes pathdatavarlibregistry pathcertscerts 上述的 environment 中,有條件的話,還請設定需要登入才能訪問限制。最簡單,可以使用 apache http header 驗證方式。 # dockercompose.yml registry restart always image registry3 ports 50005000 environment REGISTRY_HTTP_TLS_CERTIFICATE certsdomain.crt REGISTRY_HTTP_TLS_KEY certsdomain.key REGISTRY_AUTH htpasswd REGISTRY_AUTH_HTPASSWD_PATH authhtpasswd REGISTRY_AUTH_HTPASSWD_REALM Registry Realm volumes pathdatavarlibregistry pathcertscerts pathauthauth REGISTRY_AUTH, REGISTRY_AUTH_HTPASSWD_PATH, REGISTRY_AUTH_HTPASSWD_REALM 的值照抄就好,然後pathauthhtpasswd 就需要以 htpasswd 的格式提供內容 apache password_encryptions。即是以下那個樣子 USERNAME_1BCRYPT_HASH_1 USERNAME_2BCRYPT_HASH_2 USERNAME_3BCRYPT_HASH_3 Client 連線方式 一切都設定好後,在 client 端,就可以登入並推送你的 image,題外話,cli登入的都是以明文的方式存在電腦中,所以不要隨便在公開的地方存入自己的帳號 # login docker login YOUR_DOMAIN5000 # try reupload image docker image tag registry3 YOUR_DOMAIN5000registry3 docker image push YOUR_DOMAIN5000registry3 如果 server 端沒有提供SSL,那麼 client 就只能設定 http 的不安全連線。 httpsdistribution.github.iodistributionaboutinsecure 修改 client 端的 etcdockerdaemon.json Windows Docker Desktop請經 Gui修改,然後重啟 client 端的 docker quot;insecureregistriesquot; quot;YOUR_DOMAIN5000quot; Registry Server 維護 Garbage collection 垃圾回收 當我們設立了自己的 Registry 倉庫之後,少不免就是要維護硬碟的用量。很多過期的 Image ,沒有需要,那就手動刪除,然後進行 Garbage collection 垃圾回收。另一種情況,就如前述教學中,大家使用統一版本號,例如 latest ,表面上看似只有一個 tag ,但其實底下可能已經藏有多個不同的版本,也需要經過Garbage collection來清理空間。 因為回收過程比較危險,所以官方並不建議自動做,以下就簡單講講為了做刪除和回收,設定檔要怎樣改。為方便改設定,我們更新 docker compose yaml 檔,把 server config 都帶到 container 外面。 registry restart always image registry3 ports 50005000 environment REGISTRY_HTTP_TLS_CERTIFICATE certsdomain.crt REGISTRY_HTTP_TLS_KEY certsdomain.key REGISTRY_AUTH htpasswd REGISTRY_AUTH_HTPASSWD_PATH authhtpasswd REGISTRY_AUTH_HTPASSWD_REALM Registry Realm volumes pathdatavarlibregistry pathcertscerts pathauthauth pathconfig.ymletcdistributionconfig.yml config.yml 就如下所示,為了提供 API 刪除 image 的可能,storage.delete.enbled 要為 true,又為著之後進行回收時,可以避免有人於回收中途上載,所以預先加入 storage.maintenance.readonly.enabled 的控制項。回收之前要把readonly改為true,回收後再調為false。 每次修改完,記得重啟一下 docker service 。 storage filesystem rootdirectory varlibregistry delete enabled true maintenance readonly enabled false Garbage collection 指令 # inside container # binregistry garbagecollect dryrun deleteuntagged quiet pathtoconfig.yml binregistry garbagecollect deleteuntagged=true etcdockerregistryconfig.yml # outside container, at host level docker exec it YOUR_CONATINER_NAME binregistry garbagecollect deleteuntagged=true etcdockerregistryconfig.yml

升級 Spring Boot WebClient SSL (Reactor Netty 1.2.6):重新配置 SSL 設定
科技新知
MacauYeah・2025-08-27

因為SSL provider 更新了的關係,好多 HttpClient WebClient 設定SSL的部份都要重寫以免出現 deprecated 問題 reactor.netty.http.client.HttpClient 在 1.0.x, 中可以這樣自行設定SSL逾時的部份,但當中的spec.sslContext.defaultConfiguration 在新版本,例如1.1.x後就會出現 deprecated。 deprecated version HttpClient.create .securespec gt; spec.sslContextSslContextBuilder.forClient .defaultConfigurationSslProvider.DefaultConfigurationType.TCP .handshakeTimeoutDuration.ofSeconds30 .closeNotifyFlushTimeoutDuration.ofSeconds10 .closeNotifyReadTimeoutDuration.ofSeconds10; 觀看各大網站,都未有更新,唯有自行研究官方說明。 筆者撰寫本文的時候,netty 發行版本為 1.2.6, 1.3.0 還里程碑M6的階段。所有參考皆來自1.2.6版本,實際上我們要使用新的後綴為ContextSpec類,看Class名應該有分http 1.1, 2, 3的版本,筆者就試用最基本的http 1.1。Http11SslContextSpec, 有條件的朋友可以試用Http2SslContextSpec, Http3SslContextSpec import reactor.netty.http.Http11SslContextSpec; import reactor.netty.http.client.HttpClient; import java.time.Duration; import org.springframework.web.reactive.function.client.WebClient; import org.springframework.http.client.reactive.ReactorClientHttpConnector; ... Http11SslContextSpec http11SslContextSpec = Http11SslContextSpec.forClient; HttpClient httpClient = HttpClient.create .securespec gt; spec.sslContexthttp11SslContextSpec .handshakeTimeoutDuration.ofSeconds30 .closeNotifyFlushTimeoutDuration.ofSeconds10 .closeNotifyReadTimeoutDuration.ofSeconds10; WebClient webClient = WebClient.builder.clientConnectornew ReactorClientHttpConnectorhttpClient .build; ... 雖然這個寫法來看netty 1.2.6,但似乎1.1.x 通用。大家有需要可以交互測試一下。 Reference netty 1.2.6 httpclienttimeout 的設定 netty 1.1.30 timeoutconfiguration 的設定 netty 1.2.6 java api doc netty release version 更多筆者的程式開發分享,見請 github

Swarm mode 上線 4 | IP 設定
科技新知
MacauYeah・2024-07-23

單機模式 IP設定 平常我們自己做測試,網絡功能通常用預設的就好。但當我們的Docker Container需要存取在區域網內的其他資源,避晚IP網段相衝是必需要的事。 大部份情況下,單機Docker使用的預設IP段會是 172.17.0.016 172.18.0.016 ... 若然現在區域網中,有一段172.18.0.024,大家不想Docker踩到其中,可以修改設定檔,加入預設的defaultaddresspools,以後它就只會從指定的區段使用。 # vim etcdockerdaemon.json quot;defaultaddresspoolsquot; quot;basequot; quot;172.17.0.016quot;, quot;sizequot; 24 , quot;basequot; quot;172.19.0.016quot;, quot;sizequot; 24 , quot;basequot; quot;172.20.0.016quot;, quot;sizequot; 24 其中base,是docker可以操作的總區域,size指的是Docker要自行分段的話,每段的大小是多少,上述的例子,就代表未來可能有以下Docker 網段。 172.17.0.024 172.17.1.024 ... 172.17.255.024 172.19.0.024 172.19.1.024 ... 172.19.255.024 172.20.0.024 172.20.1.024 ... 172.20.255.024 修改完設定後,重啟Docker就會生效。當然,重啟前,先刪除所有不在預設範圍的所有Container。 Swarm模式 IP設定 Swarm模式,與單機差不多,它需要在初始化Swarm就要定義,而且它不能與單機的網段有重疊。單機會預設使用Private IPv4 Class B,Swarm則是預設使用Private IPv4 Class A段,所以我們若就更改,就使用10.x.x.x吧。 docker swarm init defaultaddrpool 10.1.0.016 defaultaddrpoolmasklength 24 經上述例子初始化的 ingress 網段,將會是 10.1.0.024,隨後每個stack 則會是 10.1.1.024 10.1.2.024 10.1.3.024 重置Swarm 跟單機的情況類似,如果已建立Swarm後才修改網段,還是要整個刪掉重來。 每個節點都要執行以下指令。 docker swarm leave force 實測swarm leave這個指令也會把所有運行中的stack刪掉。 各節點重新建立swarm # in node 1, init new swarm with new ip docker swarm init defaultaddrpool 10.1.0.016 defaultaddrpoolmasklength 24 # in node 1, get new manager token docker swarm jointoken manager # in node 2 and node 3, join node 1 with new token docker swarm join token XXXXX YOUR_NEW_NODE1_IP2377 雙管齊下 如果大家同想要修定單機及Swarm的網段,還要留意有一個特別的網段docker_gwbridge。它雖然是Swarm的附帶產物,但它則是受單機的網段控制。也就是,如果大家有需要同時修改單機及Swarm的網段,則需要手動刪除Swarm及docker_gwbridge 在每個節點先刪掉舊有的Swarm及docker_gwbridge,並關掉docker docker swarm leave force docker network rm docker_gwbridge 在每個節點為docker_gwbridge修改設定,然後重起docker # vim etcdockerdaemon.json quot;defaultaddresspoolsquot; quot;basequot; quot;172.17.0.016quot;, quot;sizequot; 24 然後像前述一樣,重起Swarm。

【圖書閣】上線啦!最適合兒童的線上電子書平台,免費過百本兒童圖書盡在CTM!
科技新知
Lifemagparents・2020-03-03

【圖書閣】上線啦!CTM為你打造最適合兒童的線上平台,來自美國著名兒童讀物出版社品牌mdash;mdash;Highlights,在國際上大受好評的美國兒童雜誌第一品牌!現在已經在CTM Buddy手機應用程式和CyberCTM網站隆重登場,提供012歲最受歡迎的兒童讀物,讓你可以24小時隨時閱讀精彩內容,輕鬆線上閱讀! 培養閱讀習慣,令孩子終生受益!【圖書閣】分有三個不同年齡層的英文圖書,分別是02歲,26和612歲的兒讀讀物,共有300本圖書。父母可以用作睡前讀物,作為親子共讀活動,令孩子從小培養興趣。不同難度的圖書均配以生動有趣的,令孩子愛上自主閱讀! 快點透過【圖書閣】與孩子一起試閱,共同體驗閱讀的樂趣吧! CyberCTM 進入教學 進入CyberCTM首頁,點擊「CTM圖書閣」 進入圖書閣,並選擇想閱讀的英文圖書 打開圖晝進行閱讀,點擊上方播放器,即可馬上聆聽內容 CTMBuddy 進入教學 進入CTMBuddy App,點擊「免費圖書」 選入圖書閣,選擇想閱讀的英文圖書 打開圖晝進行閱讀,點擊上方播放器,即可馬上聆聽內容 如果你想知道更多親子學習內容,你也可以參閱以下文章,讓你的生活更充實! 【停課不停學】超齊全線上親子學習素材及遊戲 留在家中不無聊,和小朋友一起學習玩耍吧!5個親子互動活動 作者:Dororo

阿爾卑斯山下的瑞士風情小鎮 法國安錫
走遍世界
行走世界記錄・2019-06-20

法國不只巴黎 安錫小鎮 Annecy這個小鎮名字,對於亞洲地區而言,未必每個人到對它有興趣,但它的優雅氣息卻吸引著歐洲大陸的人們到來 。Annecy擁有兩個中文譯名 安錫或安納西,並且得到很多稱譽 法國最美小鎮、法瑞邊境的仙境小鎮、法國的威尼斯小鎮... 隆河 阿爾卑斯山大區 安錫位於法國東部,座落在阿爾卑斯山旁,屬法國東南部所合併的隆河 阿爾卑斯山大區 Rhocirc;neAlpes中的上薩瓦省 。隆河是瑞士阿爾卑斯山冰河融化後投入日內瓦湖,再輸入法國一直向南流,最後投入地中海。因此,法國把隆河流經的地區以及阿爾卑斯山旁的省份合併而成一個秀麗的自然風景大區。 法國與瑞士邊境的人間仙境 安錫小鎮的確很特別,它是法國的小鎮,卻距離瑞士日內瓦只有半小時車程,很多人把它歸納為瑞士小鎮,但歷史卻原屬15世紀的意大利薩伏依王朝 Casa Savoia,依現代的地理概念來說,當時的薩伏依領土遍佈法瑞意這三個國家的邊界土地。而安錫的位置就是落在法國與瑞士的邊界上,它繼承了薩伏依的獨特的建築風格,亦得以共享阿爾卑斯山的自然資源,成為了法國境內擁有獨特文化的人間仙境。 薩瓦地區的一顆耀眼瑰寶 薩瓦地區泛指法國東南部,曾為薩伏依王朝所統治的地方,安錫小鎮被阿爾卑斯山環抱,清澈的湖水把安錫閃亮,成為薩瓦的耀眼瑰寶。 法國人眼中最潔淨的歐洲湖泊 安錫擁有一個很大的湖泊 安錫湖 Lac d'Annecy 是阿爾卑斯山冰雪融化而形成的淡水湖。1960年法國實施環保措施,讓安錫湖得以保持清澈乾淨,成為法國人眼中的「歐洲最乾淨的湖泊」。安錫湖碧綠潔淨,水清見底,湖水更安靜地流進安錫舊城區的河道。 清麗脫俗 動靜皆宜 青山碧水與四季分明的安錫,尤以夏季及冬季最受歡迎。夏天在安錫湖有很多水上活動,冬天則在山上進行滑雪活動。而春季及秋季則適合賞花及賞紅葉的愛好者,安錫活像一位動靜皆宜的仙子。 散步河畔 慢活人生 漫步綺麗的河畔,欣賞安錫的日與夜。安錫原屬薩伏依王朝的領地,因此建築風格跟一般法國的有所不同,安錫有其獨特的建築風格。歷史保護城區依舊保持著中世紀的面貌,彩色小屋沿著蜿蜒的河岸兩旁排列,小橋連接著河的兩岸,河水在橋下安靜地流動。河的兩岸餐廳及店舖林立,熱鬧但不喧嚷,優雅地接待每一位到來的客人。 盧梭忘不了的愛戀之地mdash;mdash; 『沒有安錫 沒有盧梭』,這樣說一點也不過份。出生於日內瓦的盧梭是法國著名思想家,少年時代的盧梭在安錫遇上了培育他的華倫夫人,同時對她帶著愛慕之情,就這樣在安錫渡過了十年的愛戀時光。不被看好的戀情,愛人的移情別戀,令盧梭轉至巴黎,成為法國大革命重要的啟蒙思想家。在安錫舊城區的河岸可以看到一個盧梭廣場,對於盧梭來說安錫有特別及難忘旳意義。 享受法國的瑞士風情 安錫毗鄰瑞士,是充滿瑞士風情的法國小鎮,舊城區隨處可見瑞士的食品。其中芝士鍋最值得一試,把麵包沾滿香軟美味的芝士,這一刻會錯覺自己已跨越國界,進人了瑞士的國境呢 mdash;mdash;mdash;mdash;mdash; 跟著本地人體驗市集生活 安錫小鎮雖然隱世於阿爾卑斯山麓下,生活機能卻一點都不缺少。碰巧給遇上了星期四市集,各類蔬果、芝士、麵包、香腸等,在舊城品的小巷中攞放,好不熱鬧。安錫每天會在小鎮的不同位置擺放市集, 讓生活在這裡的人們購買到生活的必需品。有機會跟著本地人的步伐,體驗法瑞式生活。 實至名歸的靈氣仙境小鎮 法瑞邊境的安錫 ANNECY 更多精彩文章在 行走世界記錄