구글 포토에 이미지를 대량으로 올리고 싶을 때
구글이 제공하는 API 를 사용하거나
웹브라우저로 직접 올려야 한다
구글 포토 API 의 단점
=======
무료로 제공하는 ‘High quality’ 옵션을 막아놨기 때문에 API 로 올리는 사진은 제한용량을 사용한다
웹브라우저로 구글 포토에 ‘High quality’ 로 올리면 제한용량을 사용하지 않는다 (2021년 5월말까지만)
웹브라우저로 파일올리기
github 에 upload-gphotos 라는 repository 가 있어서 사용해봤다
설치방법
=======
- repository 만들고
upload-gphotos
설치하고1
| npm install --save upload-gphotos
|
index.js
만들고
- 구글 포토의 아이디 / 비밀번호 설정하고
- upload 대상 폴더와 upload 후의 폴더 생성하고
- upload 대상 폴더에 이미지를 넣고
- 실행
설정내용
index.js1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| 'use strict' const fs = require('fs'); const libpath = require('path'); const { GPhotos } = require('upload-gphotos'); const gphotos = new GPhotos();
const UPLOADDIR = 'd:/user/Downloads/gphotos'; const DONEDIR = 'd:/user/Downloads/upload_done'; const GPHOTONAME = 'GOOGLEID'; const GPHOTOPASS = 'GOOGLEPASSWORD'; const GPHOTOALBUM = 'blog-upload';
const uploadfiles = fs.readdirSync(UPLOADDIR); for(let index=0; index < uploadfiles.length; index++) { let file = uploadfiles[index]; let filePath = libpath.join(UPLOADDIR, file); let destinationPath = libpath.join(DONEDIR, file); (async () => { await gphotos.signin({ username: GPHOTONAME, password: GPHOTOPASS, }); const album = await gphotos.searchAlbum({ title: GPHOTOALBUM }); const photo = await gphotos.upload({ stream: fs.createReadStream(filePath), size: (await fs.promises.stat(filePath)).size, filename: libpath.basename(filePath), }); await album.append(photo); fs.renameSync(filePath, destinationPath); console.log(photo); })().catch(console.error); }
|
실행결과
결론
웹브라우저 extension 으로 이미지 마우스 클릭시 구글포토로 업로드 되던 서비스들이 전부 막혔다
이젠 이런 프로그래밍 방식을 사용하는 것 밖에 없다
아니면
Imgur 를 사용하자
바로 업로드 되고 링크를 바로 블로그에서 사용할 수 있다