GitHub API를 사용하여 GitHub에서 파일을 다운로드하고 있습니다. 성공적으로 인증하고 github에서 응답을 받고 파일 내용을 나타내는 base64로 인코딩 된 문자열을 볼 수있었습니다.GitHub API를 사용하여 파일을 다운로드하는 동안 base64 디코딩
base64 문자열을 디코딩 할 때 불행히도 예외적 인 오류 (문자열 길이가 4의 배수가 아님)가 발생합니다.
HTTP 요청은 아래 그림 경우 : (부분) 응답이 아래에 예시되어있다
GET /repos/:owner/:repo/contents/:path
:
{
"name":....,
"download_url":...",
"type":"file",
"content":"ewogICAgInN3YWdnZXIiOiAiM...
}
의 I가 발생하고 문제 문자열의 길이는 15,263 바이트이다를, 문자열을 디코딩 할 때 오류가 발생합니다 (문자열 길이는 4의 배수가 아닙니다). 나는 node.js와 'base64-js'npm 모듈을 사용하여 문자열을 해독합니다. 디코딩을 실행하는 코드는 아래에 설명되어
var base64 = require('base64-js');
var contents = base64.toByteArray(fileContent);
는 디코딩 예외가 발생합니다
Error: Invalid string. Length must be a multiple of 4
at placeHoldersCount (.../node_modules/base64-js/index.js:23:11)
at Object.toByteArray (...node_modules/base64-js/index.js:42:18)
:
:
내가 GitHub의 API는 나에게 올바른 데이터를 전송하고 있음을 생각을, 그래서 나는이 아니다 파악 발행물.
부적절하게 디코딩을 수행하고 있습니까? 아니면 또 다른 문제가 있습니까?
도움을 주시면 감사하겠습니다.
추가 헤더가 더 나은 옵션입니다. –