티스토리 뷰

======================================================================
 Download API Site
======================================================================

http://wiki.openstack.org/SwiftAPI

======================================================================
 API Summary
======================================================================
 
내가 가지고 있는 내 로컬 PC의 디렉토리를 관리하는 것이 아니라,
원격에 있는 디렉토리 서버에 접속(Http 프로토롤 사용)을 해서 사용자 계정으로 로그인하고
그 사용자가 가지고 있는 디렉토리를 관리한다.

우리는 프로그래밍할때 다운로드 받은 소스를 Ant로 빌드한다.
그러면 java-cloudfiles.jar 파일이 생성된다. 
이 jar 파일을 개발할때 import시키고 개발하면 된다.
 
======================================================================
 Command Help 
======================================================================
get                               List the containers for this account 
: 로그인한 사용자 계정의 컨테이너(즉 디렉토리) 리스트 조회
get container                     List the contents of the given container
: 선택한 혹은 주어진 컨테이너의 컨텐츠 리스트 조회
get container/object destination  Download the given object and store it at the destination
: 선택한 객체(즉 데이터)를 다운로드하고 선택한곳(저장소)에 다운받은 파일을 저장한다.
head                              Get information about this account
: 로그인한 사용자 계정에 대한 정보 조회
head container                    Get the container's information
: 컨테이너(디렉토리) 정보 조회
head container/object             Get the objects's information and metadata
: 객체(파일)의 정보와 메타데이터(속성정보) 조회
put container                     Create the given container
: 컨테이너(디렉토리)를 생성한다.
put container localfile           Upload the local file to the container
: 컨테이너(디렉토리)에 내 PC에 있는 로컬파일을 업로드한다.
delete container                  Delete the container
: 컨테이너를 삭제한다.
delete container/object           Delete the given object
: 객체(파일)을 삭제한다.
help                              Print this help message
: Help 메시지를 출력한다.
exit                              Exit the program
: 프로그램을 빠져나간다.


======================================================================
 OpenStack Process 분석 (FilesCli.java)
======================================================================

1. UserName과 Password로 Cloud 사이트에 로그인한다.
   
   이때 cloudfiles.properties 파일에서 Cloud사이트를 정보를 가져오는데, 
   auth_url=https://auth.api.rackspacecloud.com/v1.0  로 되어 있다.
   우리는 rackspacecloud.com에 가입이 되어 있지 않아 본 프로그램을 테스트 하지 못했지만
   OpenStack를 설치하고 해당 Server로 접속을 하면 될 듯하다.

로그인에는 두가지 방법이 있는데, 
1.1 하나는 사용자로부터 ID와 PW를 받아 로그인하는 방법이고
1.2 다른 하나는 properties파일에서 ID와 PW 정보를 읽어와 로그인하는 방법이 있다.
2. 로그인을 성공하고 나면 다음과 같은 정보를 조회해 온다.
- storageURL  (저장 Path)
- authToken (인증 토큰)
- cdnManagementURL (관리페이지URL)
- ConnectionManager (메니저 객체)

3. 사용자가 보낸 명령어순대로 명령을 처리한다.
- help 
 : 위에 있는 help String을 화면에 뿌려준다.
- exit or quit 
 : 프로그램을 종료한다.
- get 
 : 컨테이너 리스트를 조회해 화면에 컨테이너명을 출력해 준다.
- get <container name>
 : 컨테이너의 컨텐츠 리스트를 조회해 화면에 출력해 준다. 없으면 empty라고 출력한다.
- get <object name>
 : 객체(파일)를 다운로드한다. 
   이때 명령어는 get container/filename.ext destination.ext 로 입력한다. 그렇지 않으면 오류를 발생시킨다.
   다운로드 방법은 InputStream으로 읽어들여 FileOutputStream으로 출력한다.
- head
 : 컨테이너 개체수, 총사이즈 정보를 출력한다.
- head <container name>
 : 선택한 컨테이너의 객체(파일)수와 총사이즈를 출력한다.
- head <object name>
 : 선택한 객체의 Metadata가 있을경우에만 해당 정보를 보여준다.
   선택한 파일의 총 사이즈, 파일 타입, 또 다른 메타데이터가 있다면 해당 정보를 출력해 준다.
- put <container_name>
 : 새로운 컨테이너(디렉토리)를 생성한다.
   우선, 저장경로가 있는지 체크한 후 해당정장경로로 컨테이너(디렉토리)를 생성한다.
- put <local file>
 : 객체(파일)을 업로드한다.
   1) 업로드할 파일이 있는지 체크한다. 2) 파일명, 확장자, 파일타입를 추출한다.
   3) 컨테이너(디렉토리)가 있는지 체크한다. 4) 해당 컨테이너(디렉토리)로 파일을 저장한다.
- delete <object name>
 : 선택한 객체(파일)를 삭제한다.
- delete <container name>
 : 선택한 컨테이너(디렉토리)를 삭제한다.
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/03   »
1 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
글 보관함