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/java
3.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。 :
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#은 텍스트와 이미지가 포함된 PowerPoint 독을 생성합니다.PowerPoint 문서(슬라이드)는 일반적인 프레젠테이션의 문서이며, 스피치, 교육, 제품의 프레젠테이션 등의 면에서 널리 응용되고 있다. 이 문은 간단한 PowerPoint 파일을 만드는 방법을 보여줍니다. 다음...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.