R에서 데이터를 가져올때, 파일 다운로드 방식으로 가져온다. 물론 개인적으로 Owncloud라고 별도의 클라우드를 가지고 있으나, 개인적으로 사용하려면, 안정적인 서버가 있어야 하고, 이것 또한 이중화 되어 있어야 한다.
나는 서버 전문가가 아니므로, 내가 설치한 서버가 언제까지 존재 할지는 알 수 없다. Owncloud에서는 URL에서 다운로드 하는 것이 정해져 있는데, 구글 드라이브에서는 URL에서 다운로드 하는 것을 어렵게 한다.
물론 못하게 하는 것은 아닌 것 같다. 하지만, 트래픽이 많이 걸리면, 나름대로 제제가 있을 거 같다. 하지만 나는 지금 구글 드라이브의 유료 버전을 쓰고 있다.
예전에 몽고DB 클라우드 무료 버전에서, 클라우드에서 DB 다운로드 받는 것을 하다가 일정기간이 지나니까? 모든 것이 끊겨져 버렸다.
어찌 되었든 조금만 트레픽이 걸려도, 예고 없이 막는 업체가 있다.
이번에는 구글드라이브를 공유하였을때, 어떻게 다운로드 하는지 볼 것이다.
구글 드라이브 공유 |
위의 그림의 링크를 가지고, 파일을 다운로드 할 수 없고 R에서 URL 다운로드 받을 수 없다.
하지만 아래와 같이 하면 된다.
아래 것은 구글 엑셀이 열리는 URL 이다.
https://docs.google.com/spreadsheets/d/1gyBNE68gJk6zDFMAslAy5YPujzjqYNdc/edit#gid=1882775431
위의 빨간색을 아래의 포멧에 복사하면, 다운로드 할 수 있는 URL이 된다.
https://drive.google.com/u/0/uc?id=1gyBNE68gJk6zDFMAslAy5YPujzjqYNdc&export=download"
하지만, 아래의 Key 값을 아래와 같은 포멧으로 복사하게 되면, 파일 다운로드 되고 R에서 URL 다운로드가 된다. 음 믿음직한 다운로드 URL을 가지게 된것이다.
아래와 같이 R에서 실험해보자 .
# 파일을 불러오기
library(readxl)
library(httr)
# 파일을 불러오는 path를 url 변수로 정의
url = "https://drive.google.com/u/0/uc?id=1gyBNE68gJk6zDFMAslAy5YPujzjqYNdc&export=download"
GET(url, write_disk(tf <- tempfile(fileext = ".xlsx")))
## Response [https://doc-04-58-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/laae5522ea98u4990843c53dgpn3d1na/1637495250000/07297316292192978319/*/1gyBNE68gJk6zDFMAslAy5YPujzjqYNdc?e=download]
## Date: 2021-11-21 11:48
## Status: 200
## Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
## Size: 13.4 kB
## <ON DISK> C:\Users\ygkim\AppData\Local\Temp\RtmpgttW04\file6aec319f221c.xlsx
system.time(df <- read_excel(tf, 1L))
## user system elapsed
## 0.12 0.04 0.18
위와 같이 복사해서 넣게 되면, 파일 용량이 적을 경우 매우 빠른 속도로 다운로드 받을 수 있다.
댓글 없음:
댓글 쓰기