{"id":34850,"date":"2024-08-01T14:54:45","date_gmt":"2024-08-01T07:54:45","guid":{"rendered":"http:\/\/jupitek.maudemo.vip\/index.php\/2024\/08\/01\/iot-firmware-upgrades-with-object-storage-and-akamai-cdn\/"},"modified":"2026-05-14T10:27:36","modified_gmt":"2026-05-14T09:27:36","slug":"iot-firmware-upgrades-with-object-storage-and-akamai-cdn","status":"publish","type":"post","link":"https:\/\/jupitek.maudemo.vip\/index.php\/2024\/08\/01\/iot-firmware-upgrades-with-object-storage-and-akamai-cdn\/","title":{"rendered":"N\u00e2ng c\u1ea5p Firmware IoT b\u1eb1ng Object Storage v\u00e0 Akamai CDN"},"content":{"rendered":"<h3 id=\"overview\">T\u1ed5ng quan<a href=\"https:\/\/www.linode.com\/docs\/guides\/iot-firmware-upgrades-with-obj-and-cdn\/#overview\"><\/a><\/h3>\n<p>Khi ng\u00e0y c\u00e0ng nhi\u1ec1u thi\u1ebft b\u1ecb \u0111i\u1ec7n t\u1eed ti\u00eau d\u00f9ng tham gia Internet v\u1ea1n v\u1eadt (IoT), nhu c\u1ea7u cung c\u1ea5p c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt ph\u1ea7n m\u1ec1m b\u1ea3o m\u1eadt v\u00e0 t\u00ednh n\u0103ng cho c\u00e1c thi\u1ebft b\u1ecb n\u00e0y tr\u1edf n\u00ean quan tr\u1ecdng h\u01a1n \u0111\u1ed1i v\u1edbi c\u00e1c nh\u00e0 s\u1ea3n xu\u1ea5t thi\u1ebft b\u1ecb IoT. M\u1ed9t trong nh\u1eefng kh\u00eda c\u1ea1nh ch\u00ednh m\u00e0 c\u00e1c nh\u00e0 s\u1ea3n xu\u1ea5t c\u1ea7n l\u1eadp k\u1ebf ho\u1ea1ch cung c\u1ea5p l\u00e0 l\u01b0\u1ee3ng d\u1eef li\u1ec7u \u0111\u1ea7u ra m\u00e0 c\u00e1c h\u1ec7 th\u1ed1ng n\u00e0y s\u1ebd s\u1eed d\u1ee5ng. \u1ede quy m\u00f4 l\u1edbn, chi ph\u00ed \u0111\u1ec3 gi\u1eef cho c\u1ea3 ng\u01b0\u1eddi ti\u00eau d\u00f9ng v\u00e0 doanh nghi\u1ec7p h\u00e0i l\u00f2ng v\u00e0 an to\u00e0n c\u00f3 th\u1ec3 r\u1ea5t l\u1edbn. S\u1eed d\u1ee5ng Linode Object Storage tr\u00ean Akamai Connected Cloud l\u00e0m ngu\u1ed3n g\u1ed1c cho d\u1eef li\u1ec7u n\u00e0y v\u00e0 k\u1ebft n\u1ed1i d\u1ecbch v\u1ee5 \u0111\u00f3 v\u1edbi Akamai CDN c\u00f3 th\u1ec3 ti\u1ebft ki\u1ec7m chi ph\u00ed r\u1ea5t nhi\u1ec1u so v\u1edbi c\u00e1c nh\u00e0 cung c\u1ea5p d\u1ecbch v\u1ee5 si\u00eau m\u1edf r\u1ed9ng c\u1ea1nh tranh kh\u00e1c.<\/p>\n<h3 id=\"firmware-update-workflow\">Quy tr\u00ecnh c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf<a href=\"https:\/\/www.linode.com\/docs\/guides\/iot-firmware-upgrades-with-obj-and-cdn\/#firmware-update-workflow\"><\/a><\/h3>\n<ol>\n<li>Nh\u00e0 s\u1ea3n xu\u1ea5t t\u1ea3i g\u00f3i ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf m\u1edbi l\u00ean th\u00f9ng l\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng.<\/li>\n<li>M\u1ed9t kh\u00e1ch h\u00e0ng y\u00eau c\u1ea7u ph\u1ea7n m\u1ec1m m\u1edbi.<\/li>\n<li>Ph\u1ea7n m\u1ec1m \u0111\u01b0\u1ee3c cung c\u1ea5p cho m\u00e1y kh\u00e1ch t\u1eeb kho l\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng th\u00f4ng qua Akamai CDN.<\/li>\n<\/ol>\n<h3 id=\"overcoming-challenges\">V\u01b0\u1ee3t qua th\u1eed th\u00e1ch<a href=\"https:\/\/www.linode.com\/docs\/guides\/iot-firmware-upgrades-with-obj-and-cdn\/#overcoming-challenges\"><\/a><\/h3>\n<h4 id=\"challenge-moving-away-from-amazon-efs\">Th\u00e1ch th\u1ee9c: Di chuy\u1ec3n kh\u1ecfi Amazon EFS<a href=\"https:\/\/www.linode.com\/docs\/guides\/iot-firmware-upgrades-with-obj-and-cdn\/#challenge-moving-away-from-amazon-efs\"><\/a><\/h4>\n<p>M\u1ed9t nh\u00e0 s\u1ea3n xu\u1ea5t IoT th\u1ea5y m\u00ecnh \u0111ang ph\u1ea3i v\u1eadt l\u1ed9n \u0111\u1ec3 g\u1eedi b\u1ea3n c\u1eadp nh\u1eadt h\u1ec7 \u0111i\u1ec1u h\u00e0nh v\u00e0 ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf \u0111\u1ebfn c\u00e1c thi\u1ebft b\u1ecb c\u1ee7a kh\u00e1ch h\u00e0ng v\u1edbi chi ph\u00ed tho\u00e1t cao c\u1ee7a AWS. Amazon Elastic File Service (EFS) cho ph\u00e9p kh\u00e1ch h\u00e0ng t\u1ea3i l\u00ean v\u00e0 chia s\u1ebb t\u1ec7p v\u1edbi c\u00e1c phi\u00ean b\u1ea3n EC2 m\u00e0 kh\u00f4ng c\u1ea7n n\u00e2ng c\u1ea5p ho\u1eb7c di chuy\u1ec3n kh\u1ed1i l\u01b0\u1ee3ng l\u01b0u tr\u1eef, \u0111\u1ed3ng th\u1eddi v\u1eabn b\u1ea3o to\u00e0n quy\u1ec1n truy c\u1eadp h\u1ec7 th\u1ed1ng t\u1ec7p v\u00e0o c\u00e1c t\u1ec7p \u0111\u00f3. Tuy nhi\u00ean, \u0111i\u1ec1u n\u00e0y c\u00f3 th\u1ec3 t\u1ed1n k\u00e9m.<\/p>\n<p><strong>Gi\u1ea3i ph\u00e1p<\/strong>&nbsp;: D\u1ef1 \u00e1n ngu\u1ed3n m\u1edf s3fs cho ph\u00e9p m\u00e1y \u1ea3o g\u1eafn b\u1ea5t k\u1ef3 th\u00f9ng Object Storage n\u00e0o, do \u0111\u00f3 c\u00e1c th\u00f9ng Object Storage Linode c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c g\u1eafn v\u00e0o EC2 Volume b\u1eb1ng ti\u1ec7n \u00edch s3fs. \u0110i\u1ec1u n\u00e0y cho ph\u00e9p c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n c\u1ee7a nh\u00e0 s\u1ea3n xu\u1ea5t IoT lo\u1ea1i b\u1ecf s\u1ef1 ph\u1ee5 thu\u1ed9c c\u1ee7a h\u1ecd v\u00e0o Amazon EFS trong khi v\u1eabn b\u1ea3o to\u00e0n quy\u1ec1n truy c\u1eadp h\u1ec7 th\u1ed1ng t\u1ec7p m\u1ea1ng v\u00e0 c\u1eaft gi\u1ea3m chi ph\u00ed.<\/p>\n<h3 id=\"challenge-cut-egress-costs\">Th\u00e1ch th\u1ee9c: C\u1eaft gi\u1ea3m chi ph\u00ed tho\u00e1t hi\u1ec3m<a href=\"https:\/\/www.linode.com\/docs\/guides\/iot-firmware-upgrades-with-obj-and-cdn\/#challenge-cut-egress-costs\"><\/a><\/h3>\n<p>M\u1ed9t th\u00e1ch th\u1ee9c kh\u00e1c m\u00e0 nh\u00e0 s\u1ea3n xu\u1ea5t IoT g\u1eb7p ph\u1ea3i l\u00e0 h\u1ed7 tr\u1ee3 nhi\u1ec1u thi\u1ebft b\u1ecb IoT h\u01a1n tr\u00ean to\u00e0n th\u1ebf gi\u1edbi. \u0110i\u1ec1u n\u00e0y d\u1eabn \u0111\u1ebfn quy m\u00f4 d\u1ecbch v\u1ee5 cung c\u1ea5p ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf c\u1ee7a h\u1ecd t\u0103ng l\u00ean v\u1ec1 c\u1ea3 chi ph\u00ed l\u01b0u tr\u1eef v\u00e0 giao h\u00e0ng. Nh\u00e0 s\u1ea3n xu\u1ea5t IoT \u0111ang t\u00ecm ki\u1ebfm m\u1ed9t d\u1ecbch v\u1ee5 c\u00f3 th\u1ec3 gi\u00fap h\u1ecd ti\u1ebft ki\u1ec7m ti\u1ec1n khi xu\u1ea5t d\u1eef li\u1ec7u v\u00e0 c\u1ea3i thi\u1ec7n l\u1ee3i nhu\u1eadn r\u00f2ng.<\/p>\n<p><strong>Gi\u1ea3i ph\u00e1p<\/strong>&nbsp;: V\u00ec Linode Object Storage tr\u00ean Akamai Connected Cloud c\u00f3 t\u1ed1c \u0111\u1ed9 tho\u00e1t th\u1ea5p h\u01a1n nhi\u1ec1u so v\u1edbi c\u00e1c d\u1ecbch v\u1ee5 c\u1ee7a AWS v\u00e0 v\u00ec c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c thi\u1ebft l\u1eadp l\u00e0m ngu\u1ed3n g\u1ed1c cho Akamai CDN n\u00ean nh\u00e0 s\u1ea3n xu\u1ea5t IoT kh\u00f4ng ch\u1ec9 c\u00f3 th\u1ec3 duy tr\u00ec quy\u1ec1n truy c\u1eadp h\u1ec7 th\u1ed1ng t\u1ec7p v\u00e0o c\u00e1c \u0111\u1ed1i t\u01b0\u1ee3ng ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf m\u00e0 c\u00f2n gi\u1ea3m 90% chi ph\u00ed tho\u00e1t.<\/p>\n<h2 id=\"architecture\">Ng\u00e0nh ki\u1ebfn \u200b\u200b\u200b\u200btr\u00fac<a href=\"https:\/\/www.linode.com\/docs\/guides\/iot-firmware-upgrades-with-obj-and-cdn\/#architecture\"><\/a><\/h2>\n<p>Gi\u1ea3i ph\u00e1p n\u00e0y t\u1ea1o ra m\u1ed9t quy tr\u00ecnh ph\u00e2n ph\u1ed1i h\u1ee3p l\u00fd cho ph\u00e9p c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n c\u1eadp nh\u1eadt ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf nhanh ch\u00f3ng tr\u00ean nhi\u1ec1u thi\u1ebft b\u1ecb c\u1ee7a kh\u00e1ch h\u00e0ng v\u1edbi chi ph\u00ed th\u1ea5p h\u01a1n.<\/p>\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"465\" src=\"http:\/\/jupitek.maudemo.vip\/wp-content\/uploads\/2026\/05\/Screenshot_105-1024x465-1.png\" alt=\"\" class=\"wp-image-1158\" srcset=\"http:\/\/jupitek.maudemo.vip\/wp-content\/uploads\/2026\/05\/Screenshot_105-1024x465-1.png 1024w, http:\/\/jupitek.maudemo.vip\/wp-content\/uploads\/2026\/05\/Screenshot_105-300x136-1.png 300w, http:\/\/jupitek.maudemo.vip\/wp-content\/uploads\/2026\/05\/Screenshot_105-768x349-1.png 768w, http:\/\/jupitek.maudemo.vip\/wp-content\/uploads\/2026\/05\/Screenshot_105-1536x698-1.png 1536w, http:\/\/jupitek.maudemo.vip\/wp-content\/uploads\/2026\/05\/Screenshot_105.png 1686w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<h3 id=\"systems-and-components\">H\u1ec7 th\u1ed1ng v\u00e0 th\u00e0nh ph\u1ea7n<a href=\"https:\/\/www.linode.com\/docs\/guides\/iot-firmware-upgrades-with-obj-and-cdn\/#systems-and-components\"><\/a><\/h3>\n<ul>\n<li><strong>Linode Object Storage:<\/strong>&nbsp;M\u1ed9t th\u00f9ng l\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng t\u01b0\u01a1ng th\u00edch v\u1edbi S3<\/li>\n<li><strong>Linode VM:<\/strong>&nbsp;M\u00e1y \u1ea3o Linode chuy\u00ean d\u1ee5ng 16GB<\/li>\n<li><strong>Akamai CDN:<\/strong>&nbsp;M\u1ed9t CDN to\u00e0n c\u1ea7u ch\u1ea1y tr\u00ean x\u01b0\u01a1ng s\u1ed1ng h\u00e0ng \u0111\u1ea7u c\u1ee7a ng\u00e0nh Akamai<\/li>\n<li><strong>AWS Elastic Load Balancer (ELB):<\/strong>&nbsp;B\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i n\u00e0y ph\u00e2n chia l\u01b0u l\u01b0\u1ee3ng gi\u1eefa m\u00f4-\u0111un ki\u1ec3m tra ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf \u0111\u1ec3 x\u00e1c minh r\u1eb1ng m\u00e1y kh\u00e1ch c\u00f3 \u0111\u00fang y\u00eau c\u1ea7u, c\u0169ng nh\u01b0 nh\u00f3m EC2 m\u00e0 th\u00f9ng l\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng ch\u00ednh \u0111\u01b0\u1ee3c g\u1eafn v\u00e0o.<\/li>\n<li><strong>AWS Direct Connect:<\/strong>&nbsp;K\u1ebft n\u1ed1i chuy\u00ean d\u1ee5ng t\u1eeb c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n nh\u00e0 s\u1ea3n xu\u1ea5t IoT \u0111\u1ebfn ELB<\/li>\n<li><strong>AWS EFS:<\/strong>&nbsp;L\u01b0u tr\u1eef t\u1ec7p \u0111\u00e0n h\u1ed3i cung c\u1ea5p quy\u1ec1n truy c\u1eadp h\u1ec7 th\u1ed1ng t\u1ec7p v\u00e0o c\u00e1c t\u1ec7p \u0111\u00e3 t\u1ea3i l\u00ean<\/li>\n<li><strong>C\u01a1 s\u1edf d\u1eef li\u1ec7u quan h\u1ec7 Amazon (RDS):<\/strong>&nbsp;C\u01a1 s\u1edf d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 x\u00e1c minh th\u00f4ng tin phi\u00ean b\u1ea3n ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf<\/li>\n<\/ul>\n<h3 id=\"steps\">C\u00e1c b\u01b0\u1edbc<a href=\"https:\/\/www.linode.com\/docs\/guides\/iot-firmware-upgrades-with-obj-and-cdn\/#steps\"><\/a><\/h3>\n<ol>\n<li><strong>C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n t\u1ea3i l\u00ean ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf m\u1edbi.<\/strong>&nbsp;C\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n s\u1ea3n xu\u1ea5t IoT s\u1eed d\u1ee5ng Direct Connect \u0111\u1ec3 d\u1ec5 d\u00e0ng g\u1eedi ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf \u0111\u1ebfn Elastic Load Balancer (ELB).<\/li>\n<li><strong>Chuy\u1ec3n ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf sang m\u1ed9t phi\u00ean b\u1ea3n EC2.<\/strong>&nbsp;ELB chuy\u1ec3n ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf m\u1edbi sang m\u1ed9t phi\u00ean b\u1ea3n EC2, n\u01a1i ch\u01b0\u01a1ng tr\u00ecnh c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c x\u00e1c th\u1ef1c b\u1eb1ng m\u00f4-\u0111un ki\u1ec3m tra phi\u00ean b\u1ea3n.<\/li>\n<li><strong>Chuy\u1ec3n ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf \u0111\u00e3 ki\u1ec3m tra sang Object Storage.<\/strong>&nbsp;\u0110\u01b0\u1ee3c g\u1eafn v\u00e0o Nh\u00f3m EC2 b\u1eb1ng s3fs, th\u00f9ng Linode Object Storage \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 l\u01b0u tr\u1eef ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf m\u1edbi.<\/li>\n<li><strong>\u0110\u1ed3ng b\u1ed9 ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf m\u1edbi v\u1edbi bucket sao l\u01b0u.<\/strong>&nbsp;S\u1eed d\u1ee5ng rclone, m\u1ed9t \u1ee9ng d\u1ee5ng m\u00e3 ngu\u1ed3n m\u1edf, tr\u00ean Linode 16GB chuy\u00ean d\u1ee5ng, ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf m\u1edbi \u0111\u01b0\u1ee3c \u0111\u1ed3ng b\u1ed9 v\u1edbi bucket Object Storage sao l\u01b0u. Rclone th\u00f4ng minh ch\u1ec9 \u0111\u1ed3ng b\u1ed9 ch\u01b0\u01a1ng tr\u00ecnh c\u01a1 s\u1edf m\u1edbi v\u00e0 \u0111\u00e3 thay \u0111\u1ed5i, gi\u1ea3m c\u00e1c ho\u1ea1t \u0111\u1ed9ng kh\u00f4ng c\u1ea7n thi\u1ebft.<\/li>\n<li><strong>H\u1ec7 th\u1ed1ng tr\u1ea3 v\u1ec1 ph\u1ea7n m\u1ec1m \u0111\u01b0\u1ee3c y\u00eau c\u1ea7u cho thi\u1ebft b\u1ecb IoT.<\/strong>&nbsp;S\u1eed d\u1ee5ng Akamai CDN v\u1edbi ngu\u1ed3n g\u1ed1c l\u00e0 th\u00f9ng l\u01b0u tr\u1eef \u0111\u1ed1i t\u01b0\u1ee3ng, ph\u1ea7n m\u1ec1m \u0111\u01b0\u1ee3c y\u00eau c\u1ea7u ho\u1eb7c b\u1eaft bu\u1ed9c s\u1ebd \u0111\u01b0\u1ee3c chuy\u1ec3n \u0111\u1ebfn thi\u1ebft b\u1ecb IoT.<\/li>\n<\/ol>\n<p>Ngu\u1ed3n : https:\/\/www.linode.com\/docs\/guides\/iot-firmware-upgrades-with-obj-and-cdn\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u1ed5ng quan Khi ng\u00e0y c\u00e0ng nhi\u1ec1u thi\u1ebft b\u1ecb \u0111i\u1ec7n t\u1eed ti\u00eau d\u00f9ng tham gia Internet v\u1ea1n v\u1eadt (IoT), nhu c\u1ea7u cung c\u1ea5p c\u00e1c b\u1ea3n c\u1eadp nh\u1eadt ph\u1ea7n m\u1ec1m b\u1ea3o m\u1eadt v\u00e0 t\u00ednh n\u0103ng cho c\u00e1c thi\u1ebft b\u1ecb n\u00e0y tr\u1edf n\u00ean quan tr\u1ecdng h\u01a1n \u0111\u1ed1i v\u1edbi c\u00e1c nh\u00e0 s\u1ea3n xu\u1ea5t thi\u1ebft b\u1ecb IoT. M\u1ed9t trong nh\u1eefng<\/p>\n","protected":false},"author":1,"featured_media":35395,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[125],"tags":[],"class_list":["post-34850","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-solutions"],"_links":{"self":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/comments?post=34850"}],"version-history":[{"count":1,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34850\/revisions"}],"predecessor-version":[{"id":35396,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/posts\/34850\/revisions\/35396"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media\/35395"}],"wp:attachment":[{"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/media?parent=34850"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/categories?post=34850"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jupitek.maudemo.vip\/index.php\/wp-json\/wp\/v2\/tags?post=34850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}