Getting Started(Google Cloud Storage Client Library)

14031 단어 library
다음 절 차 를 실행 하기 전에 확인 하 십시오.
1.프로젝트 는 최소한 하나의 Cloud Storage bucket 을 만 든 것 을 포함 하여 Google Cloud Storage 와 App Engine 을 활성화 하 였 습 니 다.
2.클 라 이언 트 라 이브 러 리 를 다운로드 하고 압축 을 풀 었 습 니 다.
3.최신 App Engine Java SDK 를 설치 하고 설정 하 였 습 니 다.
LocalExample.java 예 실행
LocalExample.java 는 비 배치 적 인 예 로 클 라 우 드 스토리 지 의 기능 을 신속하게 테스트 하고 조사 하 는 데 도움 이 된다.Eclipse 콘 솔 을 제외 하고 UI 구성 요소 가 없습니다.(Cloud Storage client library deployable samplesUI 가 있어 도 얻 을 수 있다)
Eclipse 에서 LocalExample.자바 실행
1.이 클립 스 시작
2.이 클립 스에 서 윈도->Preferneces->Google->App Engine 을 클릭 하고 Add 를 클릭 합 니 다.
3.알림 에 따라 App Engine SDK 의 설치 경 로 를 제공 하고 OK 를 클릭 합 니 다.
4.Files 메뉴 에서 Files->New->Java Project 를 누 르 면 LocalExample 이라는 항목 을 만 들 고 가방 이름com.google.appengine.demos。을 사용 합 니 다.
5.Package Explorer 에서 이 항목 을 선택 하고 Files->New->Class 를 누 르 고 이 클래스 에 LocalExample 라 는 이름 을 붙 이 고 패키지 이름 com.google.appengine.demos 를 사용 합 니 다.
6.복사  LocalExampleJava source  이런 종류의 파일 에 내용 이 들 어 있 습 니 다.
7.Package Explorer 에서 이 항목 을 다시 선택 하고 오른쪽 클릭 하여 Properties->Java Build Path 를 누 르 십시오.
8.Libraries tab 에서 Add External Jars 를 누 르 십시오.아래 JARs 를 추가 해 야 합 니 다.
●appengine-gcs-client.jar 설치 한 Cloud Storage client 라 이브 러 리
● guava-15.0.jar 설 치 된 Cloud Storage client 라 이브 러 리 에서
● joda-time-2.3.jar 는 당신 이 설치 한 Cloud Storage client 라 이브 러 리 에서 왔 습 니 다.
● appengine-testing.jar 는 App Engine 에 설 치 된 하위 디 렉 터 리 에서 왔 습 니 다.  /lib/testing
● appengine-api.jar App Engine 에서 설치 한 하위 디 렉 터 리 /lib/impl
● appengine-api-stubs.jar App Engine 에서 설치 한 하위 디 렉 터 리 /lib/impl
9.as->Java 응용 프로그램 을 컴 파일,실행
10.Eclipse Console 에서 다음 출력 을 볼 수 있 습 니 다.
LocalExample.java 예 조사
LocalExample.java 는 클 라 우 드 스토리 지 클 라 이언 트 라 이브 러 리 의 사용 에 대해 상세 하 게 설명 했다.
Imports
일부 imports 는 필요 하지 않 거나 로 컬 테스트 에 사용 할 수 있 습 니 다.다음은 예 를 들 어 imports 를 보 여 줍 니 다.
import com.google.appengine.tools.cloudstorage.GcsFileOptions;

import com.google.appengine.tools.cloudstorage.GcsFilename;

import com.google.appengine.tools.cloudstorage.GcsInputChannel;

import com.google.appengine.tools.cloudstorage.GcsOutputChannel;

import com.google.appengine.tools.cloudstorage.GcsService;

import com.google.appengine.tools.cloudstorage.GcsServiceFactory;

import com.google.appengine.tools.cloudstorage.RetryParams;

import com.google.appengine.tools.development.testing.LocalBlobstoreServiceTestConfig;

import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;

import com.google.appengine.tools.development.testing.LocalServiceTestHelper;



import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.nio.ByteBuffer;

import java.nio.channels.Channels;

import java.util.Arrays;

import java.util.HashMap;

import java.util.Map;

다음은 이 imports 를 간략하게 소개 합 니 다.
com.google.appengine.tools.cloudstorage.*클 라 우 드 스토리 지 클 라 이언 트 라 이브 러 리 를 사용 할 수 있 습 니 다.com.google.appengine.tools.development.testing.*  일부 App Engine 기능 의 로 컬 유닛 테스트 를 할 때 만 필요 합 니 다.java.io.ObjectInputStream  java.io.ObjectOutputStream  읽 기와 쓰기 대상.
java.nio.ByteBuffer 는 버퍼 가 아 닌 읽 기와 쓰기 에 사 용 됩 니 다.
java.io.IOException 오류 처리 시 필요 합 니 다(목록 이 없 음 에 도 불구 하고)
java.nio.channels.Channel 은 입 출력 채널 을 흐름 으로 변환 하 는 데 사 용 됩 니 다.
java.nio.channels.ReadableByteChannel 은 클 라 우 드 스토리 지 에서 데 이 터 를 읽 는 데 사 용 됩 니 다.
요청 을 보 내기 위해 GcsService 를 만 듭 니 다.
클 라 우 드 스토리 지 에 라 이브 러 리 를 통 해 요청 을 보 내 고 받 으 려 면 GcsService 인 스 턴 스 가 필요 합 니 다.
private final GcsService gcsService =

    GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());

이 세 션 에서 createGcsServiceRetryParams의 사용 에 주의 하 십시오.위 와 같이createGcsService(RetryParams.getDefaultInstance())클 라 우 드 스토리 지 에 접근 할 때 시간 초과 나 예상 치 못 한 오류 가 발생 했 을 때 재 시도 하 는 기본 재 시도 설정 이 설정 되 어 있 습 니 다.다른 값 을 지정 하기 위해 서,예 를 들 어 재 시도 의 최대 횟수 를 사용 하 십시오RetryParams.Builder 새로운  RetryParams대상 에서 설정 을 바 꾸 고 GcsService 를 만 들 때 제공 합 니 다.이 GcsService 대상 이 생 성 되면 재 시도 매개 변 수 를 바 꿀 수 없습니다.
임의의 GcsService 인 스 턴 스 를 만 들 수 있 습 니 다.모든 인 스 턴 스 는 독립 적 이 고 가 변 적 이지 않 으 며 중복 사용 할 수 있 습 니 다.예 를 들 어 하 나 는 특정한 매개 변수 설정 을 사용 하여 파일 을 쓸 수 있 고 다른 하 나 는 서로 다른 재 시도 매개 변 수 를 사용 하여 서로 다른 파일 을 읽 을 수 있다.
하나의 추천 실천 은 모든 I/O 클래스 에서 독립 된 인 스 턴 스 를 사용 하 는 것 입 니 다.이것 은 당신 의 독립 과 적은 비용 을 유지 하 는 데 도움 이 될 것 입 니 다.
Cloud Storage 에 데이터 쓰기
다음 예 는 클 라 우 드 스토리 지 파일 에 데 이 터 를 쓰 는 방법 을 보 여 줍 니 다.독립 된 세 션 은 정렬 가능 한 대상 데이터 와 바이트 배열 을 제공 합 니 다.
close 가 호출 될 때 까지 클 라 우 드 스토리 지 파일 이 완전히 만 들 어 지지 않 습 니 다.
다음 세 션 에 서 는 finally 블록 에 close 가 나타 나 지 않 았 습 니 다.자바 에서 자주 하 는 것 과 같 습 니 다.그래서 이상 이 있 을 때 쓰 인 부분 은 자동 으로 지 워 집 니 다.
클 라 우 드 스토리 지 에 쓰기 대상
대상 을 클 라 우 드 스토리 지 파일 로 정렬 하 는 방법 을 설명 합 니 다.우선,쓰기 가능 한 바이트 채널 가 져 오기:
GcsOutputChannel outputChannel =

    gcsService.createOrReplace(fileName, GcsFileOptions.getDefaultInstance());

이 부분 에서GcsService.createOrReplace 호출 되 었 습 니 다.GcsFilename 첫 번 째 매개 변수 로이 대상 은 사용 할 bucket 의 이름과 대상 의 이름 을 포함 하고 있 습 니 다.bucket 에 같은 이름 의 대상 이 있 고 쓰기 권한 이 있다 면 이 호출 은 존재 하 는 파일 을 덮어 씁 니 다(Cloud Storage 는 추가 가 지원 되 지 않 습 니 다).만약 그 이름 의 파일 이 없다 면,이 호출 의 결 과 는 새 파일 을 만 든 것 이다.
두 번 째 매개 변 수 는GcsFileOptions입 니 다.기본 설정 을 사용 하려 면GcsFileOptions.getDefaultInstance。 , GcsFileOptions.Builder GcsFileOptions 。이 파일 옵션 은 Cloud Storage 에 전달 되 어 파일 의 텍스트 형식 을 알려 줍 니 다.머리 에 전달 하고 싶 은 사용자 메타 데이터,파일 액세스 관리 ACL 등 입 니 다.텍스트 형식(mimeType)을 제공 하지 않 으 면 클 라 우 드 Storage 에서 기본 MIME 형식 으로(serve)제공 합 니 다.현재 사용 하고 있 는 것 은 binary/ocket-stream 입 니 다.ACL 을 지정 하지 않 으 면 분 배 된 대상 접근 권한 은 현재 기본 대상 ACL 입 니 다.
모든 파일 옵션 정 보 는 Close 이후 호출GcsService.getMetadata(fileName)을 통 해 한 대상 에서 얻 을 수 있 으 며,이 대상 을 다운로드 하지 않 아 도 됩 니 다.
더 많은 설정 정보 에 대해 서 는 Cloud Storage 문서 의 ACLs 와 file options 를 탐색 합 니 다.
현재 출력 흐름 을 사용 하여 데 이 터 를 씁 니 다.
@SuppressWarnings("resource")

ObjectOutputStream oout =

    new ObjectOutputStream(Channels.newOutputStream(outputChannel));

oout.writeObject(content);

oout.close();

Cloud Storage 파일 에 바이트 배열 쓰기
클 라 우 드 스토리 지 파일 에 바이트 배열 을 쓰 는 방법 을 설명 합 니 다.
@SuppressWarnings("resource")

GcsOutputChannel outputChannel =

    gcsService.createOrReplace(fileName, GcsFileOptions.getDefaultInstance());

outputChannel.write(ByteBuffer.wrap(content));

outputChannel.close();

createOrReplace 호출 에 사용 되 는 매개 변수 에 대한 설명 은Writing an Object to Cloud Storage의 설명 을 참조 합 니 다.
클 라 우 드 스토리 지 에서 데이터 읽 기
다음 예 는 클 라 우 드 스토리 지 에 저 장 된 파일 에서 데 이 터 를 읽 는 방법 을 설명 합 니 다.분 리 된 세 션 은 클 라 우 드 스토리 지 파일 을 대상(직렬 화)과 바이트 배열 로 읽 습 니 다.
클 라 우 드 스토리 지 를 대상 으로 읽 기
이 방법 은 큰 파일 을 버퍼 에 읽 는 데 유용 하 다.
GcsInputChannel readChannel = gcsService.openPrefetchingReadChannel(fileName, 0, 1024 * 1024);

이 호출  GcsService.openPrefetchingReadChannel  하나 있다  GcsFilename읽 을 bucket 의 이름과 읽 을 대상 을 포함 합 니 다.두 번 째 매개 변 수 는 파일 이 읽 기 시작 하 는 바이트 이 고 0 은 파일 의 시작 부분 부터 읽 는 것 을 나타 낸다.만약 파일 의 다른 시작 위 치 를 제공 했다 면,예 를 들 어 바이트 300,이 읽 기 동작 은 바이트 300 부터 파일 의 끝 까지,또는 읽 기 를 멈 출 때 까지 입 니 다.(미리 읽 기 버퍼 는 먼저 읽 습 니 다.멈 출 위 치 를 초과 하 는 바이트 가 포 함 됩 니 다)
미리 읽 기 는 대부분의 응용 프로그램 에 있어 서 중요 한 장점 입 니 다.더 많은 데이터 가 배경 에서 다운로드 되 고 있 을 때 파일 의 일 부 를 병렬 적 으로 처리 할 수 있 기 때 문 입 니 다.
세 번 째 매개 변 수 는 미리 읽 은 버퍼 의 크기 입 니 다.이 예 에서 1MB 로 설정 합 니 다.
현재 채널 에서 파일 읽 기:
try (ObjectInputStream oin = new ObjectInputStream(Channels.newInputStream(readChannel))) {

  return oin.readObject();

}

바이트 배열 로 데이터 읽 기
작은 파일 에 대해 서 는 바이트 배열 로 모든 파일 을 한 번 에 읽 을 수 있 습 니 다.
int fileSize = (int) gcsService.getMetadata(fileName).getLength();

ByteBuffer result = ByteBuffer.allocate(fileSize);

try (GcsInputChannel readChannel = gcsService.openReadChannel(fileName, 0)) {

  readChannel.read(result);

}

위의 세 션 에 서 는 자바.nio.ByteBuffer 의 사용 을 주의 하 십시오.특히 버퍼 의 크기 설정 은 채널 에서 읽 을 파일 의 크기 와 같 습 니 다.
대부분의 응용 프로그램 에서 더 좋아 하 는 방법 은 파일(stream)을 읽 는 것 입 니 다.메모리 에 한 번 에 모든 데 이 터 를 저장 할 필요 가 없 기 때 문 입 니 다.
UI 가 있 는 클 라 우 드 스토리 지 클 라 이언 트 라 이브 러 리 의 예
UI 가 있 는 배치 가능 한 예 에 대해 코드 를 탐색 합 니 다.
●  GcsExampleServlet.java클 라 우 드 스토리 지 에서 다운로드 파일 업로드
●  PortOfFilesAPIGuestbookServlet.java는 예 프로그램의 포트(port)로 이전에 유행 이 지난 Files API 를 사용 했다.이전 에 대한 더 많은 정 보 는 Migrating from the Files API 를 참조 하 십시오.
development server 에서 실행 되 고 배치 되 기 전에 이 예 를 컴 파일 해 야 합 니 다.
이 예 를 컴 파일 합 니 다:
1.터미널 에서 Checkout 코드
svn checkout http://appengine-gcs-client.googlecode.com/svn/trunk/ appengine-gcs-client-read-only

2.디 렉 터 리 로 전환ppengine-gcs-client-read-only/java3.ant compile 호출example,이것 은 디 렉 터 리 에 있 는 build.xml 로 예 를 컴 파일 합 니 다.Apache Ant 사용 에 대한 더 많은 정보,참조  Using Apache Ant .
4.다음 명령 을 호출 하여 dev server 를 실행 합 니 다.
/path/to/AppEngSDK/dev_appserver.sh  /path/to/example/war

5.탐색 중 탐색  localhost:8080。 :

좋은 웹페이지 즐겨찾기