2013年7月5日金曜日

Hello Goolge Cloud Storage - その7

Google Cloud Storageのファーストステップを紹介する、
Hello Google Cloud Storageページを翻訳してみます。

このページで紹介されている機能を試すには、
GSUtilのセットアップとGoogle Cloud Storageサービスの認証が必要です。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちら、第6回はこちらです。

ステップ4:オブジェクトの移動

mvコマンドを使うと、あるバケットから他へとオブジェクトを移動することができます。mvコマンドはオブジェクトの名前変更のためにも使うことができます。dogsバケットからcatsバケットへファイルのすべてを移動するには、以下のコマンドを使用します:
gsutil mv gs://dogs/*.jpg gs://cats/
catsバケット内に移動するpoodle.jpgの名前を変更するには、以下のコマンドを使用します:
gsutil mv gs://cats/poodle.jpg gs://cats/siamese.jpg

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年5月31日金曜日

Hello Goolge Cloud Storage - その6

Google Cloud Storageのファーストステップを紹介する、
Hello Google Cloud Storageページを翻訳してみます。

このページで紹介されている機能を試すには、
GSUtilのセットアップとGoogle Cloud Storageサービスの認証が必要です。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちらです。

ステップ3:バケットとオブジェクトのリスト

次に、生成したバケットとオブジェクトをリスト化します。これを行うには、lsコマンドを使うことができます。例として、以下のコマンドは特定のプロジェクト内のバケットをリスト化します:
gsutil ls
以下のコマンドはdogsというバケットの中に格納されているオブジェクトをリスト化します。
gsutil ls gs://dogs
-lオプションの使用 -lオプションを使用して、オブジェクトとバケットの長いリストを出力することができます。これは、単独でlsコマンドを使用するよりも多くの情報を提供します。例として、以下のコマンドではdogs内のすべてのオブジェクトについての情報をリスト化します:
gsutil ls -l gs://dogs
コンテンツの代わりにバケットの情報を取得したい場合は、-bオプションをバケット名を後ろに続けて含めることで可能になります。例として、以下のコマンドリストはdogsバケットについての情報をリスト化します。
gsutil ls -l -b gs://dogs
バケット全体のサイズをリスト化するには、以下のコマンドのいずれかを使用できます:
  • gsutil ls -l
    バケットと全体のサイズのリストを提供します。
  • gsutil ls -l gs://*
    バケット内のすべてのオブジェクトと、全体のサイズの完全なリストを提供します。
Using the -L option - -Lオプションの使用 lsコマンドと共に-Lオプションを使用すると、プロジェクト内のバケットとオブジェクトについての利用可能な詳細な情報の多くをリスト化することができます。例として、以下のコマンドはdogsバケット内にあるオブジェクトの、サイズ、最終更新日時、キャッシュコントロールなどのような包括的な情報を提供します。
gsutil ls -L gs://dogs/*
以下のコマンドで、バケットについての詳細な情報を参照することができます。
gsutil ls -L
内容の代わりに特定のバケットについての詳細な情報を取得したい場合は、-bオプションにバケット名を続けます。例として、以下のコマンドはdogsバケットについての詳細な情報を提供します:
gsutil ls -L -b gs://dogs
Note:このオプションはオブジェクトとバケットについての詳細な情報のほとんどを提供しますが、-Lオプションは必要とする全ての情報を取得しようとして複数のGETリクエストを使用するために、月間の帯域幅クォータを使用します。それに比較して、-lオプションは必要とする情報につき一つだけのGETリクエストを行うため、-Lオプションよりもずっと早くなります。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年5月16日木曜日

Hello Goolge Cloud Storage - その5

Google Cloud Storageのファーストステップを紹介する、
Hello Google Cloud Storageページを翻訳してみます。

このページで紹介されている機能を試すには、
GSUtilのセットアップとGoogle Cloud Storageサービスの認証が必要です。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちらです。

ステップ2:オブジェクトをバケットにアップロードする

ここまでで幾つかバケットを生成することができたので、それらの中にオブジェクト2つの組み合わせをアップロードしてみましょう。これを行うには、新しいディレクトリを生成して、ディレクトリに2つのイメージファイルを作り、ファイル名をpoodle.jpgとcollie.jpgとします。ファイルをアップロードするために、ディレクトリを今生成したものに変更して、cpコマンドを以下の様に使用します。

gsutil cp *.jpg gs://dogs

cpコマンドはUNIXの再帰(-R)オプションつきでcpコマンドと同様に動作し、ディレクトリ全体やディレクトリ内のコンテンツのコピーを行います。GSUtilはワイルドカードもサポートしていて、ファイルのバッチコピー・ムーブを簡単に行えます。オブジェクトのアップロードの方法によって、GSUtilは以下の一定のガイドラインに従った名前を付けたオブジェクトを生成します。
・ディレクトリを再帰的にアップロードするために-Rオプションを使用する場合、GSUtilは再帰プロセスをスタートするディレクトリをベースにした名前を付けたオブジェクトを生成します。
例として、client1/low_priorityy/に存在するディレクトリが存在して、gsutil cp -R client1/low_priority dst_uri というコマンドを使用して再帰的にコピーを行う場合、再帰プロセスが開始されるディレクトリ名がlow_priorityなので、GSUtilはオブジェクト名にlow_priorityを使用した新しいオブジェクトを生成します。

gs://dst_uri/low_priority/my_object

-Rオプションはサブディレクトリもコピーを行い、オブジェクト名にはサブディレクトリ名も含まれます。例として、client1/low_priorityがさらにdatasheetsというディレクトリを含む場合、gsutil cp -R client1/low_priority des_uriは以下の様に名前をつけてオブジェクトを生成します。

gs://dst_uri/low_priority/building.cad gs://dst_uri/low_priority/schematics.cad gs://dst_uri/low_priority/datasheets/assets.txt gs://dst_uri/low_priority/datasheets/expenses.txt

このような動作は、組織の目的別での使用やGoogle Storage Managerでの利用に役に立ちますが、注意深く行わないと、意図しないパスをファイル名の中に組み込んでしまうことにもなります(例えば、上記の例ではlow_priorityという部分をを顧客に対して付けてしまいます)。
・ディレクトリをそのディレクトリ名を先頭に追加しないでコピーやアップロードする必要がある場合、ワイルドカードをしようできます。
例として、gsutil cp client1/low_priority/* dst_uri としてファイルをコピーすると、GSUtilは先頭にディレクトリ名を追加することなくオブジェクトをディレクトリにコピーします。

gs://dst_uri/my_object

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年4月25日木曜日

Hello Goolge Cloud Storage - その4

Google Cloud Storageのファーストステップを紹介する、
Hello Google Cloud Storageページを翻訳してみます。

このページで紹介されている機能を試すには、
GSUtilのセットアップとGoogle Cloud Storageサービスの認証が必要です。

第1回はこちら、第2回はこちら、第3回はこちらです。

ステップ1:バケットの生成

最初に、一意のバケット名でプロジェクトに2つのバケットを生成します。mbコマンドを使うことで可能です。例として、以下のコマンドはcatsとdogsという名前のバケットを生成します。
gsutil mb gs://cats gs://dogs

ノート:GSUtilをWindowsOS上で実行している場合、Pythonインタプリタを最初に呼び出す必要があります。例として、catsとdogsという名前の2つのバケットを生成するには、
python gsutil mb gs://cats gs://dogs

とコマンドプロンプトにタイプしなければなりません。

バケットを生成する時には他に存在しない名前を付けるようにしてください。catsやdogsのような名前のバケットを生成しようとすると、以下のようなエラーを受け取る可能性があるからです:
Failure: GSCreateError: 409 Conflict BucketNameUnavailableThe requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again..
これは、catやdogというバケット名は既に使われているということを意味しています。Google Cloud Storageは単一のネームスペースを持つので、バケット名はGoogle Cloud Storageシステム全体を通して他と重複しないようにしなければなりません。他の誰かが既にcatsやdogsという名前のバケットを生成していた場合、あなたはこれらの名前でバケットを生成することは認められません。重複しないようにバケット名を変更する必要がありますが、同時に以下のバケット命名ガイドラインに従う必要もあります。
場所による制約を指定することも可能なので、-l<location>フラグを付けることで地理的な位置を指定してバケットを生成することができます。詳しくは、Specifying Bucket Locationsを参照してください。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年4月12日金曜日

Hello Goolge Cloud Storage - その3

Google Cloud Storageのファーストステップを紹介する、
Hello Google Cloud Storageページを翻訳してみます。

このページで紹介されている機能を試すには、
GSUtilのセットアップとGoogle Cloud Storageサービスの認証が必要です。

第1回はこちら、第2回はこちらです。

Hello Google Cloud Storage! Exercises - Hello Google Cloud Storage!演習

以下の演習は、Google Cloud StorageをGSUtilコマンドラインツールを通しての使用を開始する手助けとなります。演習を開始する前提条件をご覧になっていない場合は、上の項目を参照してください。
この演習が終われば、以下のタスクが完了します。
  • バケットの生成と削除
  • オブジェクトのアップロード、削除、移動
  • バケットとオブジェクトのリスト
  • オブジェクトとバケットの共有

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年3月28日木曜日

Hello Goolge Cloud Storage - その2

Google Cloud Storageのファーストステップを紹介する、
Hello Google Cloud Storageページを翻訳してみます。

このページで紹介されている機能を試すには、
GSUtilのセットアップとGoogle Cloud Storageサービスの認証が必要です。

第1回はこちらです。


Prerequisites 前提条件

演習を開始する前に、以下の前提条件を満たす必要があります。
  • この演習を完了するためにはGoogle Cloud Storageにアクセスする必要があります。 プロジェクトチームのメンバーとして既存のGoogle Accountによるか、直近にGoogle Cloud Storageのアカウントを作成している場合、Google Cloud Storageにアクセスできること
  • Python 2.6またはPython 2.7をインストール済みであること 現在のバージョンのGSUtilはPython 2.6またはPython 2.7のみサポートしています。
  • GSUtilの最新バージョンがインストールされていること GSUtilはGoogle Cloud Storageにアクセスを行うPythonアプリケーションです。
上記の前提条件を満たしたら、演習を続けていきましょう。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年3月10日日曜日

Hello Goolge Cloud Storage - その1

Google Cloud Storageのファーストステップを紹介する、
Hello Google Cloud Storageページを翻訳してみます。

このページで紹介されている機能を試すには、
GSUtilのセットアップとGoogle Cloud Storageサービスの認証が必要です。



Hello Google Cloud Storage!

Hello Google Cloud Storage!のページは、GSUtilツールを使ってGoogle Cloud Storageの使用を開始するための簡単で素早い方法を提供します。この演習はGoogle Cloud StorageをGSUtilと共に使用する幾つかの基本的なタスクを通して、基本的なGoogle Cloud Storageの機能を探索する手助けをします。

この演習の最後では、より高度なGSUtilの機能についてGSUtilのリファレンスガイド をレビューできます。

ノート:このドキュメントの演習は、GSUtilのセットアップとGoogle Cloud Storageサービスの認証を必要としています。単にダウンロードしたり、パブリックにアクセス可能なオブジェクトにアクセスする場合、GSUtilクライアントをインストールしてからオブジェクトをダウンロードするのみで行えます。パブリックにアクセス可能なオブジェクトにアクセスするためには、Google Cloud Storageのアクティブ化、課金の設定、Google Cloud Storageサービスの認証は必要ありません。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年2月21日木曜日

Google Cloud Storageのドキュメント - Java API概要 その14

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちら、第6回はこちら
第7回はこちら、第8回はこちら、第9回はこちら
第10回はこちら、第11回はこちら、第12回はこちら
第13回はこちらです。

Quotas and Limits - クォータと制限

Cloud Storageは、豊富な無料試用クォータを提供する従量制有料サービスです。無料クォータを超えた場合は、Cloud Storage料金表に基づいて課金されます。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年2月8日金曜日

Google Cloud Storageのドキュメント - Java API概要 その13

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちら、第6回はこちら
第7回はこちら、第8回はこちら、第9回はこちら
第10回はこちら、第11回はこちら、第12回はこちらです。

  • アプリケーションをデプロイします。
    Eclipseから
    • EclipseのツールバーにあるGoogleアイコンをクリックします。
    • ドロップダウンメニューのDeploy to App Engineをクリックします。
    • App Engine project settings...をクリックします。
    • Application IDをダイアログのDeploymentセクションに入力して、OKボタンをクリックします。
    • メールアドレスとパスワードを入力して、Deployをクリックします。
    コマンドラインから: アプリケーションのコードとファイルをappcfg.cmd(Windows)またはappcfg.sh(Mac OS X,Linux)という名前のSDKに含まれているコマンドを使ってアップロードすることができます。 AppCfgは、App Engineのアプリケーション用の対話型多目的ツールです。コマンドは、アクション名、アプリケーションのwar/ディレクトリへのパス、その他のオプションを引数とします。App Engineにアプリケーションのコードをアップロードするには、アップデートアクションを使用します。 Windowsでアップロードを行うには:
    ..\appengine-java-sdk\bin\appcfg.cmd update war
    
    Mac OS XまたはLinuxでアップロードを行うには:
    ../appengine-java-sdk/bin/appcfg.sh update war
    
    Googleアカウントのユーザー名とパスワードをプロンプトに入力してください。
  • http://application-id.appspot.comでアプリケーションを参照してください。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年2月1日金曜日

Google Cloud Storageのドキュメント - Java API概要 その12

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちら、第6回はこちら
第7回はこちら、第8回はこちら、第9回はこちら
第10回はこちら、第11回はこちらです。

  • 以下のコードでGuestbookServlet.javaのdoGet()メソッドを上書きして、BACKETNAMEとFILENAMEをあなたのバケット及びファイル名に書き換えます。
    /**
     * Copyright 2011 Google Inc. All Rights Reserved.
     * Create, Write, Read, and Finalize Cloud Storage objects.
     * Access your app at: http://myapp.appspot.com/
    **/
    
    @SuppressWarnings("serial")
    /**
     * Copyright 2011 Google Inc. All Rights Reserved.
     * Create, Write, Read, and Finalize Cloud Storage objects.
     * Access your app at: http://myapp.appspot.com/
    **/
    
    @SuppressWarnings("serial")
    public class GuestbookServlet extends HttpServlet {
       public static final String BUCKETNAME = "YOUR_BUCKET_NAME";
       public static final String FILENAME = "YOUR_FILE_NAME";
    
      @Override
      public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world from java");
        FileService fileService = FileServiceFactory.getFileService();
        GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
           .setBucket(BUCKETNAME)
           .setKey(FILENAME)
           .setMimeType("text/html")
           .setAcl("public_read")
           .addUserMetadata("myfield1", "my field value");
        AppEngineFile writableFile =
             fileService.createNewGSFile(optionsBuilder.build());
        // Open a channel to write to it
         boolean lock = false;
         FileWriteChannel writeChannel =
             fileService.openWriteChannel(writableFile, lock);
         // Different standard Java ways of writing to the channel
         // are possible. Here we use a PrintWriter:
         PrintWriter out = new PrintWriter(Channels.newWriter(writeChannel, "UTF8"));
         out.println("The woods are lovely dark and deep.");
         out.println("But I have promises to keep.");
         // Close without finalizing and save the file path for writing later
         out.close();
         String path = writableFile.getFullPath();
         // Write more to the file in a separate request:
         writableFile = new AppEngineFile(path);
         // Lock the file because we intend to finalize it and
         // no one else should be able to edit it
         lock = true;
         writeChannel = fileService.openWriteChannel(writableFile, lock);
         // This time we write to the channel directly
         writeChannel.write(ByteBuffer.wrap
                   ("And miles to go before I sleep.".getBytes()));
    
         // Now finalize
         writeChannel.closeFinally();
         resp.getWriter().println("Done writing...");
    
         // At this point, the file is visible in App Engine as:
         // "/gs/BUCKETNAME/FILENAME"
         // and to anybody on the Internet through Cloud Storage as:
         // (http://storage.googleapis.com/BUCKETNAME/FILENAME)
         // We can now read the file through the API:
         String filename = "/gs/" + BUCKETNAME + "/" + FILENAME;
         AppEngineFile readableFile = new AppEngineFile(filename);
         FileReadChannel readChannel =
             fileService.openReadChannel(readableFile, false);
         // Again, different standard Java ways of reading from the channel.
         BufferedReader reader =
                 new BufferedReader(Channels.newReader(readChannel, "UTF8"));
         String line = reader.readLine();
         resp.getWriter().println("READ:" + line);
    
        // line = "The woods are lovely, dark, and deep."
         readChannel.close();
      }
    }
    

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年1月27日日曜日

Google Cloud Storageのドキュメント - Java API概要 その11

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちら、第6回はこちら
第7回はこちら、第8回はこちら、第9回はこちら
第10回はこちらです。

Complete Sample App - サンプルアプリケーション

以下は、App EngineアプリケーションでCloud Storage APIを使用するデモンストレーションであるサンプルアプリケーションです。アプリケーションを実行するには、バケットに対してWRITEアクセスを持つか、オーナーでなければなりません。 このアプリケーションをセットアップするには:
  • Google Plugin for EclipseページのCreating a projectセクション以下の指示に従って、プラグインのインストールとセットアップを行います。
  • あなたのGuestbookServlet.javaファイルの先頭に以下のインポートをコピーします。
    import com.google.appengine.api.files.AppEngineFile;
    import com.google.appengine.api.files.FileReadChannel;
    import com.google.appengine.api.files.FileService;
    import com.google.appengine.api.files.FileServiceFactory;
    import com.google.appengine.api.files.FileWriteChannel;
    import com.google.appengine.api.files.GSFileOptions.GSFileOptionsBuilder;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.nio.ByteBuffer;
    import java.nio.channels.Channels;
    
    import javax.servlet.http.*;
    

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年1月18日金曜日

Google Cloud Storageのドキュメント - Java API概要 その10

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちら、第6回はこちら
第7回はこちら、第8回はこちら、第9回はこちらです。

Reading the Object - オブジェクトの読み出し

オブジェクトを読み出す前に、オブジェクトのファイナライズを行わなければなりません。 オブジェクトを読み出すには:
boolean lockForRead = false;
String filename = "/gs/my_bucket/my_object";
AppEngineFile readableFile = new AppEngineFile(filename);
FileReadChannel readChannel = fileService.openReadChannel(readableFile, lockForRead);

// Read the file in whichever way you'd like
BufferedReader reader = new BufferedReader(Channels.newReader(readChannel, "UTF8"));
String line = reader.readLine();
resp.getWriter().println("READ:" + line);

readChannel.close();
一つのAPIコールでアプリケーションによって読み出されるオブジェクトの最大サイズは、32メガバイトです。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年1月10日木曜日

Google Cloud Storageのドキュメント - Java API概要 その9

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちら、第6回はこちら
第7回はこちら、第8回はこちらです。

Finalizing the Object - オブジェクトのファイナライズ

オブジェクトへの書き込みが終了した後、読み出しを行う前にファイナライズを行う必要があります:
// Finalize the object
writeChannel.closeFinally();
ここまでで、/gs/my_bucket/my_objectのファイル名でApp Engineからオブジェクトが可視状態となります。パブリックアクセス可でオブジェクトを設定している場合、http://storage.googleapis.com/my_bucket/my_objectのURLを使ってアクセスすることができます。 一度オブジェクトをファイナライズすると、後から書き込みを行うことはできなくなります。ファイルの内容の変更を行いたい場合は、上書きするために、同じ名前で新しいオブジェクトの生成を行う必要があるでしょう。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2013年1月4日金曜日

Google Cloud Storageのドキュメント - Java API概要 その8

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちら、第6回はこちら
第7回はこちらです。

Opening and Writing to the Object - オブジェクトのオープン及び書き込み

オブジェクトに書き込むためには、書き込みチャネルをオープンしなければなりません:
// Open a channel for writing
boolean lockForWrite = false; // Do you want to exclusively lock this object?
FileWriteChannel writeChannel = fileService.openWriteChannel(writableFile, lockForWrite);

次に、標準的なJavaの方法を使ってオブジェクトに書き込むことができます:
// For this example, we write to the object using the PrintWriter
PrintWriter out = new PrintWriter(Channels.newWriter(writeChannel, "UTF8"));
out.println("The woods are lovely and deep.");
out.println("But I have promises too keep.");

// Close the object without finalizing.
out.close();

/**
 * You can write to this file again, later, by saving the file path.
 * It is not possible to read the file until you finalize it.
 * Once you finalize a file, it is not possible to write to it.
 */

// Save the file path
String path = writableFile.getFullPath();

// Lock the file so no one else can access it at the same time
lockForWrite = true;

// Write to the unfinalized file again in a separate request
writableFile = new AppEngineFile(path);
writeChannel = fileService.openWriteChannel(writableFile, lockForWrite);
writeChannel.write(ByteBuffer.wrap("And miles to go before I sleep.".getBytes()));

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2012年12月23日日曜日

Google Cloud Storageのドキュメント - Java API概要 その7

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちら、第6回はこちらです。

オブジェクトには、以下のACL及びHTTPヘッダをセットするオプションのメソッドを使用することができます:
メソッド 説明 利用方法
setAcl オブジェクトに対して既定のACLを設定する setAcl("public-read")
このパラメータをセットしない場合、Cloud Storageはこのパラメータをnullに設定して、バケットに対してデフォルトのオブジェクトACLを使用します(デフォルトでは、project-private)。
setMimeType() オブジェクトに対してContent-Typeヘッダをセットします。 setMimeType("text/html")
setCacheControl() オブジェクトに対してCache-Controlヘッダをセットします。 setCacheControl("no-cache")
setContentEncoding() オブジェクトが圧縮されている場合に、Content-Encodingヘッダを使って圧縮方法を特定します。 setContentEncoding("gzip")
setContentDisposition() オブジェクトに対してContent-Dispositionヘッダを設定します。 setContentDisposition("attachment;filename=filename.ext")
addUserMetadata() カスタムヘッダ及び値のMapを生成・設定します。 addUserMetadata('header1','value1','header2','value2')
これらのカスタムヘッダは以下の形式でhttp://storage.googleapis.comを通してオブジェクトにアクセスする時に提供されます:
x-goog-meta-custom_heder: custom_value
以下の部分コードは、オプションのメソッドの一部の使用例です:
GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
  .setBucket("my_bucket")
  .setKey("my_object")
  .setAcl("public-read")
  .setMimeType("text/html")
  .setUserMetadata("date-created", "092011", "owner", "Jon");

AppEngineFile writableFile = fileService.createNewGSFile(optionsBuilder.build());

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2012年12月13日木曜日

Google Cloud Storageのドキュメント - Java API概要 その6

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちら、第5回はこちらです。

Creating an Object - オブジェクトの生成

オブジェクトを生成するには:
// Get the file service
FileService fileService = FileServiceFactory.getFileService();

/**
 * Set up properties of your new object
 * After finalizing objects, they are accessible
 * through Cloud Storage with the URL:
 * http://storage.googleapis.com/my_bucket/my_object
 */
GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
  .setBucket("my_bucket")
  .setKey("my_object")
  .setAcl("public-read");

// Create your object
AppEngineFile writableFile = fileService.createNewGSFile(optionsBuilder.build());
この例では、setAcl()メソッド内のpublic-readをパラメータにセットしています。これは、オブジェクトの読み出しを全員に許可します。このパラメータをセットしない場合、Cloud Storageは、このパラメータをnullとして、バケットに対してデフォルトのオブジェクトACLを使用します(デフォルトでは、project-privateとなります)。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2012年12月9日日曜日

Google Cloud Storageのドキュメント - Java API概要 その5

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちら
第4回はこちらです。

Before You Begin - 始める前に

App EngineアプリケーションからCloud Storageへのデータの読み書きのために、Cloud Storage APIを利用することができます。Cloud Storage Java APIを利用するには、以下のimport文をコードの最初に含まなければなりません:
import com.google.appengine.api.files.AppEngineFile;
import com.google.appengine.api.files.FileReadChannel;
import com.google.appengine.api.files.FileService;
import com.google.appengine.api.files.FileServiceFactory;
import com.google.appengine.api.files.FileWriteChannel;
import com.google.appengine.api.files.GSFileOptions.GSFileOptionsBuilder;

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2012年12月1日土曜日

Google Cloud Storageのドキュメント - Java API概要 その4

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちら、第3回はこちらです。

Using the Cloud Storage API - Cloud Storage APIの使用

アプリケーションは、どのような種類の大きいファイルでも読み込み・書き込み、アップロード、保存、ユーザーへの大ファイルの提供を行うことができます。ファイルは、Google Cloud Storageにアップロードされると、オブジェクトと呼ばれます。

Before You Begin - 始める前に

App EngineアプリケーションからCloud Storageへのデータの読み書きのために、Cloud Storage APIを利用することができます。Cloud Storage Java APIを利用するには、以下のimport文をコードの最初に含まなければなりません:
import com.google.appengine.api.files.AppEngineFile;
import com.google.appengine.api.files.FileReadChannel;
import com.google.appengine.api.files.FileService;
import com.google.appengine.api.files.FileServiceFactory;
import com.google.appengine.api.files.FileWriteChannel;
import com.google.appengine.api.files.GSFileOptions.GSFileOptionsBuilder;

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2012年11月23日金曜日

Google Cloud Storageのドキュメント - Java API概要 その3

Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちら、第2回はこちらです。

Prerequisites - 前提条件

Google Cloud Storage APIを利用するには、以下の前提条件を満たさなければなりません:
  1. Google Cloud Storage API for Javaは、App Engihe SDKs 1.6.0以降で使用できます。また、このページに記述されているサンプルのいくつかは、Google Plugin For Eclipseが必要です。Google Plugin for EclipseとApp Enging SDKのアップデート・ダウンロードについては、Google Plugin for Eclipseのダウンロードページを参照してください。
  2. Cloud Storageのアクティブ化。Google APIsコンソールで、Cloud Storageサービスのアクティブ化を行ってください。
  3. 課金のセットアップ。Google Cloud Storageは、課金情報の提供が必要です。指定の状況では、無料の試用クォータが提供されています。
  4. バケットの生成。Cloud Storageでは、データを保持する基本的なコンテナであるバケットが存在します。バケットは、Google Cloud Storageにアップロードしたデータの各部分を、オブジェクトという形で全てのデータを保持します。Google Cloud Storage APIを使用できるようになるには、データを保存するためのバケットを生成する必要があります。そのための最も簡単な方法は、qsutilツールまたはGoogle APIsコンソールを通してアクセスできるオンラインGoogle Storageブラウザを利用することです。
  5. バケットまたはオブジェクトに認証を与える。バケットに新しいオブジェクトを生成できるようにするためには、以下を行うことが必要です:
    • App Engine Adminコンソールにログイン
    • Cloud Storageのバケットを認証するアプリケーションをクリック
    • 左側にあるAdministrationセクションの下のApplication Settingsをクリック
    • Service Account Nameの下の値をコピーします。これは、アプリケーションのサービスアカウント名で、application-id@appspot.gserviceaccount.comの形式です。App Engineプレミアアカウントを使用している場合、アプリケーションのアカウント名は、application-id.example.com@appspot.gserviceaccount.comの形式となります。
    • 以下のメソッドの内の一つを用いて、アクセス権を与えます:
      • バケットにアプリケーションのアクセスを認める最も簡単な方法は、Google APIsコンソールを使ってバケットを含むプロジェクトにチームメンバーとしてアプリケーションのサービスアカウント名を加えることです。(アプリケーションはバケットに書き込みを行う必要がある場合、editパーミッションを持つことが必要です) Cloud Storage内のパーミッションについての情報は、Scopes and Permissionsを参照してください。必要ならば、プロジェクトに他のアプリケーションも加えてください。
      • アプリケーションにバケットへのアクセス権を与える他の手段として、qsutilユーティリティを使って、バケットのACLや既定のオブジェクトのACLの設定を手動で編集する方法があります:
        1. バケットのACLを取得して、編集用にファイルに保存します。
          gsutil getacl gs://mybacket > myAcl.txt
        2. 取得したACLのファイルに以下の内容を加えます。
           <entry>
             <scope type="UserByEmail">
                <emailaddress>
                   your-application-id@appspot.gserviceaccount.com
                </emailaddress>
             </scope>
             <permission>
                WRITE
             </permission>
           </entry>
        3. ACLに複数のアプリケーションを加えたい場合は、それぞれのアプリケーションについて上記の内容を繰り返し、それぞれのアプリケーションのサービス名を反映したemailアドレスのみを変更します。
        4. 変更したACLをバケットにセットします。
          gsutil setacl myAcl.txt gs://mybucket
        5. 複数のアプリケーション、またはDatastore Adminbackup and restore機能にバケットへのアクセス権を与えている場合、バケットにデフォルトのオブジェクトACLをセットする必要があります。
          1. バケットへのデフォルトのオブジェクトACLを取得して、編集用のファイルに保存します。
            gsutil getdefacl gs://mybucket > myDefAcl.txt
          2. 上記のバケットのACLと同じ内容を追加して、必要ならばWRITEをFULL_CONTROLまたはREADに変更します。
          3. 変更したデフォルトのオブジェクトACLをバケットにセットします。
            gsutil setdefacl myDefAcl.txt gs://mybucket
      • 認証されていないアプリケーションが特定のオブジェクトの読み取りを行うことを防ぐ必要がある場合は、以下のことを行えます:
        • オブジェクト上の定義済みのproject-privateACLを手動でセットする
        • バケット内にdefault project-private object ACL付きでオブジェクトを保存する
        • その後、Google APIsコンソールでサービスアカウントをproject viewerとして追加し、オブジェクトにREAD-ONLYアクセスをApp Engineアプリケーションに与えます。定義済みのpublic-readACLをセットして、認証されている・されていないに関わらずに全てのユーザーにオブジェクトへのアクセスを許可することもできます。project viewerのアプリケーションのサービスアカウント名を追加する必要はありませんが、パブリックなアクセスを望まないデータがある場合は、オブジェクトにpublic-readのACLを設定しないで下さい。
          Note:バケットにREADパーミッションのみをセットすると、バケット内のどのオブジェクトにもREADパーミッションは提供されません。オブジェクトに対して個別にREADパーミッションをセットするか、バケット内にオブジェクトを生成する前にdefault ACLをセットしなければなりません。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/

2012年11月15日木曜日

Google Cloud Storageのドキュメント - Java API概要 その2

前回から、Google Cloud StorageのJava APIの概要についての
ドキュメントを翻訳しています。

翻訳元はこちらです。

このドキュメントは、Google App Engineアプリケーションから
Google Cloud Storageの機能を呼び出す方法について
説明しています。

現在は試験的運用中なので、今後変更があるかもしれません。

第1回はこちらです。

Introducing Google Cloud Storage - Google Cloud Storageの紹介

Google App Engineは、アプリケーションにデータオブジェクトの生成・提供を可能とする、Google Cloud Storageオブジェクトへの簡単な読み書きの手段を提供しています。これらのオブジェクトはCloud Storageのバケットに保存されますが、加えてGoogle App EngineアプリケーションからGoogle Cloud Storage APIを通してアクセスすることもできます。Google Cloud Storage APIをRESTfulなAPIを使う、もしくは、このドキュメントで述べられているようにGoogle Cloud Storage Java API for Google App Engine applicationsを通して使うことができます。
 Cloud Storageは、オブジェクトの大きさの制限が無いために、大きいファイルの保存・提供に利用できます。それに加えて、Cloud Storageはアクセスコントロールリスト(ACLs)、割り込みが発生した場合のアップロード中断・再開機能、POSTポリシードキュメントの使用のほか、多くの機能を提供します。
 オブジェクトを一度生成すると、編集することはできません。既存のオブジェクトを編集するためには、必要な変更を済ませた新しいオブジェクトで、上書きを行う必要があります。
 より詳しくは、Google Cloud Storage pricingを参照してください。

インストール不要・無料のKaede翻訳ツール:
http://kaedetrans-hrd.appspot.com/