DIY 일곱 소 전단 업로드

우리 프로젝트 에는 대량의 사진 이 업로드 되 고 전시 되 어 있다.우 리 는 일곱 마리 의 소 를 CDN 으로 선택 했다.그 중 하 나 는 qiniu 가 전단 을 직접 업로드 하 는 것 을 지원 하기 때문이다.걸핏하면 4 - 5MB 의 그림 은 우리 앱 서버 에 가서 한 바퀴 돌 지 않 아 도 좋다.프론트 업 로드 를 지원 하기 위해 자 바스 크 립 트 SDK 를 제 공 했 습 니 다.근 데 코드 를 봤 어 요.너무 커 요.7000 줄 넘 게 자 바스 크 립 트 네.정말 필요 합 니까?필요 합 니까?필요 합 니까?그래서 DIY 하 나 를 결 정 했 습 니 다.정말 이지 qiniu 는 다양한 SDK 를 제공 합 니 다.REST API 로 직접 올 리 는 것 은 추천 하지 않 습 니 다.API 호출 도 간단 하 다.그래서 힘 이 좀 들 었 어 요.이 글 이 있 기 때문이다.
무슨 일이 든 지 해결 한 후에 사실은 매우 간단 하 다 고 느 꼈 다.마찬가지 로 빅 픽 처 를 이해 하면 훨씬 수월 해 질 것 이다.
qiniu 는 큰 파일 을 지원 하기 위해 파일 을 블록 (block) 으로 나 누 어 업로드 할 수 있 습 니 다.모든 파일 블록 을 업로드 한 후에 모든 블록 을 완전한 파일 로 구성 합 니 다. - 적어도 논리 적 으로 는 그렇습니다.물리 적 저장 소 는 어떻게 qiniu 자신 만 이 알 고 있 습 니까?
우 리 는 2.5MB 의 파일 을 예 로 들 었 다.파일 을 세 블록 으로 나 누 어 업로드 합 니 다.block Size 를 1MB 로 설정 합 니 다.다음 작업 이 필요 합 니 다:
  • block 1 을 업로드 합 니 다.qiniu 서버 는 이 block 을 표시 하기 위해 ctx 를 되 돌려 줍 니 다.예 를 들 어 abcd
  • block 2 를 업로드 합 니 다.qiniu 서버 는 이 block 을 표시 하기 위해 ctx 를 되 돌려 줍 니 다.예 를 들 어 efgh
  • 블 럭 3 올 리 기.qiniu 서버 는 이 block 을 표시 하기 위해 ctx 를 되 돌려 줍 니 다.예 를 들 어 ijk
  • qiniu 서버 에 이 새 파일 은 abcd, efgh 세 블록 으로 구성 되 어 있다 고 알려 줍 니 다.그리고 ijk 을 드 립 니 다.파일 을 만 들 수 있 습 니 다.

  • API 까지 구체 적 으로 말 하면 다음 과 같 습 니 다.
  • key 처음 1MB 파일 내용 을 업로드 합 니 다.서버 는 ctx 및 기타 내용 을 되 돌려 줍 니 다.
  • POST /mkblk/1048576 중간 1MB 파일 내용 을 업로드 했다.서버 는 ctx 및 기타 내용 을 되 돌려 줍 니 다.
  • POST /mkblk/1048576 마지막 0.5MB 파일 내용 을 올 렸 다.서버 가 ctx 의 다른 내용 을 되 돌려 줍 니 다.
  • POST /mkblk/524288 。파일 을 만들다.POST 의 body 에서 위의 세 개의 ctx 를 순서대로 열거 하고 쉼표 로 나 눕 니 다.이렇게 해서 문서 가 생 겼 다.예 를 들 어 POST 의 body 내용 은 다음 과 같다. POST /mkfile/2621440/key/
  • 마지막 으로 두 가 지 를 보충 합 니 다.
  • 파일 내용 의 읽 기와 각 단계 간 의 연결 은 plplploproad 를 통 해 이 루어 집 니 다.공식 SDK 와 도 일치 합 니 다.하지만 코드 량 은 훨씬 적다.
  • qiniu 는 block 내부 에서 chunk 로 나 누 어 올 릴 수 있다.abcd,efgh,ijk API 를 사용 하고 ctx 를 지정 하면 됩 니 다.좀 복잡 하고 특별한 수요 가 없 기 때문에 사용 하지 않 았 습 니 다.
  • 좋은 웹페이지 즐겨찾기