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

:簡易アップロード

最終更新日:Feb 23, 2024

Simple uploadは、PutObject操作を呼び出してオブジェクトをアップロードするために使用できるアップロードメソッドです。 簡易アップロードには、ストリーミングアップロードとオブジェクトアップロードが含まれます。 ストリーミングアップロードは、object Storage Service (OSS) にアップロードされたオブジェクトのデータソースとしてファイルストリームまたはネットワークストリームを使用します。 オブジェクトのアップロードは、OSSにアップロードされたオブジェクトのデータソースとしてローカルファイルを使用します。 このトピックでは、ストリーミングアップロードとオブジェクトアップロードを使用してオブジェクトをアップロードする方法について説明します。

使用上の注意

  • このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

  • このトピックでは、アクセス資格情報は環境変数から取得します。 アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。

  • このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSTS (Security Token Service) を使用してOSSClientインスタンスを作成する場合は、「初期化」をご参照ください。

  • 簡単なアップロードを実行するには、oss:PutObject権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。

ローカルファイルのアップロード

次のサンプルコードは、examplebucketバケットのexampledirディレクトリにあるexampleobject.txtオブジェクトにローカルファイルをアップロードする方法の例を示しています。

パッケージメイン

import (import (import)
    "fmt"
    "os"
    「github.com/aliyun/aliyun-oss-go-sdk/oss」
)

func main() {
    // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // Create an OSSClient instance. 
    // バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。 
    client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))    
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // バケットの名前を指定します。 例: examplebucket. 
    bucket, err := client.Bucket("examplebucket")
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // オブジェクトのフルパスを指定します。 例: exampledir/exampleobject.txt。 次に、ローカルファイルのフルパスを指定します。 例: D :\\ localpath\\examplefile.txt。 
    err = bucket.PutObjectFromFile("exampledir/exampleobject.txt", "D :\\ localpath\\examplefile.txt")
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
}            

文字列のアップロード

次のサンプルコードは、examplebucketバケットのexampledirディレクトリにあるexampleobject.txtオブジェクトに文字列をアップロードする方法の例を示しています。

パッケージメイン

import (import (import)
    "fmt"
    "os"
    "strings"

    「github.com/aliyun/aliyun-oss-go-sdk/oss」
)

func main() {
    // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // Create an OSSClient instance. 
    // バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。 
    client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // バケットの名前を指定します。 例: examplebucket. 
    bucket, err := client.Bucket("examplebucket")
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // オブジェクトのストレージクラスを低頻度アクセス (IA) に設定します。 
    storageType := oss.ObjectStorageClass(oss.StorageIA)   

    // オブジェクトのアクセス制御リスト (ACL) をprivateに設定します。 
    objectAcl := oss.ObjectACL(oss. ACLDrivate)

    // "Hello OSS" 文字列をexampledirディレクトリのexampleobject.txtオブジェクトにアップロードします。 
    err = bucket.PutObject("exampledir/exampleobject.txt", strings.NewReader("Hello OSS"), storageType, objectAcl)
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
}

バイト配列のアップロード

次のサンプルコードは、examplebucketバケットのexampledirディレクトリにあるexampleobject.txtオブジェクトにバイト配列をアップロードする方法の例を示しています。

パッケージメイン

import (import (import)
    "fmt"
    "os"
    "bytes"
    「github.com/aliyun/aliyun-oss-go-sdk/oss」
)

func main() {
    // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // Create an OSSClient instance. 
    // バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。 
    client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // バケットの名前を指定します。 例: examplebucket. 
    bucket, err := client.Bucket("examplebucket")
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // exampledirディレクトリのexampleobject.txtオブジェクトにバイト配列をアップロードします。 
    err = bucket.PutObject("exampledir/exampleobject.txt", bytes.NewReader([]byte("yourObjectValueByteArrary")))
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
}           

ファイルストリームのアップロード

次のサンプルコードは、examplebucketバケットのexampledirディレクトリにあるexampleobject.txtオブジェクトにファイルストリームをアップロードする方法の例を示しています。

パッケージメイン

import (import (import)
    "fmt"
    "os"
    「github.com/aliyun/aliyun-oss-go-sdk/oss」
)

func main() {
    // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // Create an OSSClient instance. 
    // バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。 
    client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider))
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // バケットの名前を指定します。 例: examplebucket. 
    bucket, err := client.Bucket("examplebucket")
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // ローカルファイルのフルパスを指定します。 例: D :\\ localpath\\examplefile.txt。 
    fd, err := os.Open("D :\\ localpath\\examplefile.txt")
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
    defer fd.Close()

    // exampledirディレクトリのexampleobject.txtオブジェクトにファイルストリームをアップロードします。 
    err = bucket.PutObject("exampledir/ledirexampleobject.txt", fd)
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
}            

Upload a network stream

次のサンプルコードは、examplebucketバケットのexampledirディレクトリにあるexampleobject.txtオブジェクトにネットワークストリームをアップロードする方法の例を示しています。

パッケージメイン

import (import (import)
    "fmt"
    "os"
    "io"
    "net/http"
    「github.com/aliyun/aliyun-oss-go-sdk/oss」
)

func HandleError (エラーエラー) {
    fmt.Println("Error:", err)
    os.Exit(-1)
}


func main() {
    // 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
    provider, err := oss.NewEnvironmentVariableCredentialsProvider()
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // Create an OSSClient instance. 
    // バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 実際のエンドポイントを指定します。 
    client, err := oss.New("yourEndpoint", ", " ", ", oss.SetCredentialsProvider(&provider)) 
    if err! =nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // バケットの名前を指定します。 例: examplebucket. 
    bucket, err := client.Bucket("examplebucket")
    // オブジェクトのフルパスを指定します。 例: exampledir/exampleobject.txt。 
    objectname := "exampledir/exampleobject.txt"
    // アップロードするネットワークストリームを指定します。 
    res,_ := http.Get("https://www.aliyun.com/")
    
    if err! =nil {
    HandleError(err)
    }

    err = bucket.PutObject(objectname, io.Reader(res.Body))

    if err! =nil {
    HandleError(err)
    }
}

参考資料

  • 簡単なアップロードの実行に使用する完全なサンプルコードについては、『GitHub』をご参照ください。

  • シンプルアップロードを実行するために呼び出すことができるAPI操作の詳細については、「PutObject」をご参照ください。