GitHub REST API v3を使って画像を保存する際の覚書です。
hiroshi-sawai.comのdocsは、GitHubのプライベートリポジトリにmarkdownで記載した内容を取得してhtmlに変換してデプロイしています。
Getting started with the REST APIを参考にして画像を保存した際の覚書です。
cURLは以下コードで保存きます。
$ curl --output sample.png \
-H 'Authorization: Bearer {{token}}' \
-H 'User-Agent: {{user}}' \
-H 'Accept: application/vnd.github.v3.raw' \
https://api.github.com/repos/{{user}}/{{repository}}/contents/path/to/sample.png
Node.jsではHTTP request libraryとしてgotを使用しました。
const options = {
encoding: null, // 画像データはnullを設定しないと正しく保存されない
headers: {
'User-Agent': {{user}},
Accept: 'application/vnd.github.v3.raw',
Authorization: `Bearer {{token}}`,
},
};
(async () => {
try {
const response = await got({{url}}, options);
filesystems.writeFile(
`sample.png`,
response.body,
{ flag: 'w+' },
(err: any) => {
if (err) throw err;
}
);
console.log(url);
} catch (error: any) {
console.log('error')
console.log(url);
}
})();
オプションでencoding: null
を指定しないとPNGファイルとして認識されませんでした。
No comments yet.
改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。