すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:CloudBoxでOSSを使い始める

最終更新日:May 06, 2024

CloudBox上のObject Storage Service (OSS) を使用すると、ローカルデータを監視および処理できます。 CloudBoxのOSSは、低レイテンシと複数のブランチの統合管理が必要なシナリオに適しています。 このトピックでは、CloudBoxバケット上のOSSの作成、CloudBoxバケット上のOSSへのオブジェクトのアップロード、およびOSSからのオブジェクトのダウンロードなど、CloudBox上のOSSの基本操作について説明します。

前提条件

  • CloudBoxのOSSは、中国 (杭州) 、中国 (深セン) 、中国 (河源) 、中国 (北京) 、中国 (成都) のリージョンでのみサポートされています。

  • クラウドボックスが購入されます。 詳細については、「クラウドボックスの購入」をご参照ください。

手順1: CloudBoxバケットでのOSSの作成

OSS コンソールの使用

  1. OSS コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、データサービス > [OSS on CloudBox Buckets] を選択します。

  3. OSS On CloudBox Bucketsページで、左上隅の [バケットの作成] をクリックします。

  4. [バケットの作成] パネルで、OSS on CloudBoxバケットの名前を指定し、他のパラメーターのデフォルト設定を保持し、[OK] をクリックします。

    OSS on CloudBoxバケットの名前は、次の要件を満たす必要があります。

    • 指定されたOSS on CloudBoxバケットの名前は、クラウドボックス内の既存のOSS on CloudBoxバケットの名前と同じにすることはできません。

    • 名前には、小文字、数字、ハイフン (-) のみを使用できます。
    • 名前の先頭と末尾は、小文字または数字である必要があります。
    • 名前の長さは 3 ~ 63 文字である必要があります。

OSS SDK for Javaの使用

OSS on CloudBoxバケットは、OSS SDK for Javaを使用してのみ作成できます。 OSS SDK for Javaのバージョンは3.15.0以降である必要があります。

com.aliyun.oss.ClientExceptionをインポートします。com.aliyun.oss.OSSをインポートします。com.aliyun.oss.OSSClientBuilderをインポートします。com.aliyun.oss.OSSExceptionをインポートします。com.aliyun.oss.mo del.CreateBucketRequestをインポートします。impor t com.aliyun.oss.com mon.auth.DefaultCredentialProvider;
impor t com.aliyun.oss.common.com m.SignVersion;
com.aliyun.oss.ClientBuilderConfigurationをインポートします。impor t com.aliyun.oss.com mon.auth.CredentialsProviderFactory;
impor t com.aliyun.oss.com mon.auth.EnvironmentVariableCredentialsProvider;

public classデモ {

    public static void main(String[] args) throws Exception {
        // OSS on CloudBoxバケットのデータエンドポイントを指定します。 
        String endpoint = "https:// cb-f8z7yvzgwfkl9q0h **** .cn-hangzhou.oss-cloudbox.aliyuncs.com";
        // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // OSS on CloudBoxバケットの名前を指定します。 例: examplebucket. 
        String bucketName = "examplebucket";
        // OSS on CloudBoxバケットが配置されているリージョンを指定します。 
        文字列region = "cn-hangzhou";
        // クラウドボックスのIDを指定します。 
        文字列cloudBoxId = "cb-f8z7yvzgwfkl9q0h ****";


        // Create an OSSClient instance. 
        ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
        conf.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                . endpoint(endpoint)
                . credentialsProvider(new DefaultCredentialProvider(credentialsProvider.getCredentials()))
                . clientConfiguration(conf)
                . region(region)
                . cloudBoxId(cloudBoxId)
                .build();

        try {
            // CreateBucketRequestオブジェクトを作成します。 
            CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);            
                       
            // OSS on CloudBoxバケットのACLをpublic-readに設定します。 デフォルトのACLはprivateです。 
            // createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);

            // CloudBoxバケットにOSSを作成します。 
            ossClient.createBucket(createBucketRequest);
        } catch (Exception e) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "しかし、何らかの理由でエラー応答で拒否されました。");
            System.out.println("エラーメッセージ:" + oe.getErrorMessage());
            System.out.println("エラーコード:" + oe.getErrorCode());
            System.out.println("リクエストID:" + oe.getRequestId());
            System.out.println("ホストID:" + oe.getHostId());
        } catch (ClientException e) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + 「ネットワークにアクセスできないなど」;
            System.out.println("エラーメッセージ:" + ce.getMessage());
        } 最後に{
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

ossutil の使用

ossutilを使用して、CloudBoxバケットにOSSを作成できます。 詳細は、「mb」をご参照ください。

OSS APIの使用

ビジネスで高度なカスタマイズが必要な場合は、RESTful APIを直接呼び出すことができます。 APIを直接呼び出すには、コードに署名計算を含める必要があります。 詳細については、「PutBucket」をご参照ください。

ステップ2: オブジェクトのアップロード

OSS SDK for Javaの使用

OSS on CloudBoxバケットにローカルファイルをアップロードするには、OSS SDK for Javaのみを使用できます。 OSS SDK for Javaのバージョンは3.15.0以降である必要があります。 次のサンプルコードは、OSS SDK for Javaを使用してローカルファイルをOSS on CloudBoxバケットにアップロードする方法の例を示しています。

com.aliyun.oss.ClientExceptionをインポートします。com.aliyun.oss.OSSをインポートします。com.aliyun.oss.OSSClientBuilderをインポートします。com.aliyun.oss.OSSExceptionをインポートします。com.aliyun.oss.mo del.PutObjectRequestをインポートします。java.io. ファイルをインポートします。impor t com.aliyun.oss.com mon.auth.DefaultCredentialProvider;
impor t com.aliyun.oss.common.com m.SignVersion;
com.aliyun.oss.ClientBuilderConfigurationをインポートします。impor t com.aliyun.oss.com mon.auth.CredentialsProviderFactory;
impor t com.aliyun.oss.com mon.auth.EnvironmentVariableCredentialsProvider;

public classデモ {

    public static void main(String[] args) throws Exception {
        // OSS on CloudBoxバケットのデータエンドポイントを指定します。 
        String endpoint = "https:// cb-f8z7yvzgwfkl9q0h **** .cn-hangzhou.oss-cloudbox.aliyuncs.com";
        // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // OSS on CloudBoxバケットの名前を指定します。 例: examplebucket. 
        String bucketName = "examplebucket";
        // OSS on CloudBoxバケットが配置されているリージョンを指定します。 
        文字列region = "cn-hangzhou";
        // クラウドボックスのIDを指定します。 
        文字列cloudBoxId = "cb-f8z7yvzgwfkl9q0h ****";
        // オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。 例: exampledir/exampleobject.txt。 
        文字列objectName = "exampledir/exampleobject.txt";
        // アップロードするローカルファイルのフルパスを指定します。 例: D :\\ localpath\\examplefile.txt。 
        // ローカルファイルのパスが指定されていない場合、サンプルプログラムが属するプロジェクトのパスからローカルファイルがアップロードされます。 
        String filePath= "D :\\ localpath\\examplefile.txt";

        // Create an OSSClient instance. 
        ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
        conf.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                . endpoint(endpoint)
                . credentialsProvider(new DefaultCredentialProvider(credentialsProvider.getCredentials()))
                . clientConfiguration(conf)
                . region(region)
                . cloudBoxId(cloudBoxId)
                .build();

        try {
            // PutObjectRequestオブジェクトを作成します。 
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName、objectName、new File(filePath));
            // 次のサンプルコードは、オブジェクトをアップロードするときにオブジェクトのストレージクラスとアクセス制御リスト (ACL) を指定する方法の例を示しています。 
            // ObjectMetadata metadata=新しいObjectMetadata();
            // metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());
            // metadata.setObjectAcl(CannedAccessControlList.Private);
            // putObjectRequest.setMetadata (メタデータ);

            // ローカルファイルをアップロードします。 
            ossClient.putObject(putObjectRequest);
        } catch (Exception e) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "しかし、何らかの理由でエラー応答で拒否されました。");
            System.out.println("エラーメッセージ:" + oe.getErrorMessage());
            System.out.println("エラーコード:" + oe.getErrorCode());
            System.out.println("リクエストID:" + oe.getRequestId());
            System.out.println("ホストID:" + oe.getHostId());
        } catch (ClientException e) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + 「ネットワークにアクセスできないなど」;
            System.out.println("エラーメッセージ:" + ce.getMessage());
        } 最後に{
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

ossutil の使用

ossutilを使用して、単純なアップロードを使用してCloudBoxバケット上のOSSにオブジェクトをアップロードできます。 詳細については、「オブジェクトのアップロード」をご参照ください。

OSS APIの使用

ビジネスで高度なカスタマイズが必要な場合は、RESTful APIを直接呼び出すことができます。 APIを直接呼び出すには、コードに署名計算を含める必要があります。 詳細は、「PutObject」をご参照ください。

ステップ3: オブジェクトをダウンロードする

OSS SDK for Javaの使用

OSS SDK for Javaのみを使用して、OSS on CloudBoxバケットからオブジェクトをダウンロードできます。 OSS SDK for Javaのバージョンは3.15.0以降である必要があります。 次のサンプルコードは、OSS SDK for Javaを使用してオブジェクトをダウンロードする方法の例を示しています。

パッケージcom.aliyun.oss.de mo;

com.aliyun.oss.ClientExceptionをインポートします。com.aliyun.oss.OSSをインポートします。impor t com.aliyun.oss.com mon.auth.*;
com.aliyun.oss.OSSClientBuilderをインポートします。com.aliyun.oss.OSSExceptionをインポートします。com.aliyun.oss.mo del.GetObjectRequestをインポートします。java.io. ファイルをインポートします。impor t com.aliyun.oss.com mon.auth.DefaultCredentialProvider;
impor t com.aliyun.oss.common.com m.SignVersion;
com.aliyun.oss.ClientBuilderConfigurationをインポートします。impor t com.aliyun.oss.com mon.auth.CredentialsProviderFactory;
impor t com.aliyun.oss.com mon.auth.EnvironmentVariableCredentialsProvider;

public classデモ {

    public static void main(String[] args) throws Exception {
        // OSS on CloudBoxバケットのデータエンドポイントを指定します。 
        String endpoint = "https:// cb-f8z7yvzgwfkl9q0h **** .cn-hangzhou.oss-cloudbox.aliyuncs.com";
        // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // OSS on CloudBoxバケットの名前を指定します。 例: examplebucket. 
        String bucketName = "examplebucket";
        // OSS on CloudBoxバケットが配置されているリージョンを指定します。 
        文字列region = "cn-hangzhou";
        // クラウドボックスのIDを指定します。 
        文字列cloudBoxId = "cb-f8z7yvzgwfkl9q0h ****";
        // オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。 例: exampledir/exampleobject.txt。 
        文字列objectName = "exampledir/exampleobject.txt";
        // ローカルファイルのフルパスを指定します。 
        文字列pathName = "D :\\ localpath\\examplefile.txt";

        // Create an OSSClient instance. 
        ClientBuilderConfiguration conf = new ClientBuilderConfiguration();
        conf.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                . endpoint(endpoint)
                . credentialsProvider(new DefaultCredentialProvider(credentialsProvider.getCredentials()))
                . clientConfiguration(conf)
                . region(region)
                . cloudBoxId(cloudBoxId)
                .build();

        try {
            // 指定したパスのローカルファイルとしてオブジェクトをダウンロードします。 同じ名前のファイルがすでにパスに存在する場合、ダウンロードされたオブジェクトはファイルを上書きします。 それ以外の場合、ダウンロードされたオブジェクトはパスに保存されます。 
            // ダウンロードしたオブジェクトのローカルパスを指定しない場合、ダウンロードしたオブジェクトはサンプルプログラムが属するプロジェクトのパスに保存されます。 
            ossClient.getObject(new GetObjectRequest(bucketName, objectName), new File(pathName));
        } catch (Exception e) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "しかし、何らかの理由でエラー応答で拒否されました。");
            System.out.println("エラーメッセージ:" + oe.getErrorMessage());
            System.out.println("エラーコード:" + oe.getErrorCode());
            System.out.println("リクエストID:" + oe.getRequestId());
            System.out.println("ホストID:" + oe.getHostId());
        } catch (ClientException e) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + 「ネットワークにアクセスできないなど」;
            System.out.println("エラーメッセージ:" + ce.getMessage());
        } 最後に{
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

ossutil の使用

ossutilを使用してファイルをダウンロードする方法の詳細については、「オブジェクトのダウンロード」をご参照ください。

OSS APIの使用

ビジネスで高度なカスタマイズが必要な場合は、RESTful APIを直接呼び出すことができます。 APIを直接呼び出すには、コードに署名計算を含める必要があります。 詳しくは、「GetObject」をご参照ください。