サイズが5 GB以下のファイルをObject Storage Service (OSS) にアップロードし、高い同時アップロードパフォーマンスを必要としない場合は、単純アップロードを使用できます。
前提条件
バケット作成についての 詳細は、「バケットの作成」をご参照ください。
制限
単純なアップロードを使用して、最大5 GBのサイズのオブジェクトをアップロードできます。 サイズが5 GBを超えるオブジェクトをアップロードする場合は、マルチパートアップロードを使用します。 詳しくは、「マルチパートアップロード」をご参照ください。
使用上の注意
データセキュリティ
オブジェクトの上書き
デフォルトでは、OSSは既存のオブジェクトを同じ名前のアップロードされたオブジェクトで上書きします。 次のメソッドを使用して、既存のオブジェクトが予期せず上書きされないようにします。
バケットのバージョン管理の有効化
バケットのバージョン管理を有効にすると、バケット内で上書きされたオブジェクトは以前のバージョンとして保存されます。 以前のバージョンのオブジェクトはいつでも回復できます。 詳細については、「概要」をご参照ください。
アップロードリクエストにx-oss-forbid-overwriteパラメーターを含める
アップロードリクエストのヘッダーにx-oss-forbid-overwriteパラメーターを追加し、このパラメーターをtrueに設定できます。 既存のオブジェクトと同じ名前のオブジェクトをアップロードすると、アップロードは失敗し、
FileAlreadyExists
エラーが返されます。 このパラメーターをリクエストヘッダーに追加しない場合、またはこのパラメーターをfalseに設定すると、既存のオブジェクトと同じ名前のアップロードされたオブジェクトが既存のオブジェクトを上書きします。
承認済みアップロード
OSSは、バケットおよびオブジェクトレベルでのアクセス制御を提供し、第三者による不正なデータのバケットへのアップロードを防止します。 詳細については、「概要」をご参照ください。
サードパーティのユーザーがバケットにファイルをアップロードする場合は、署名付きURL機能を使用してユーザーを承認できます。 このようにして、ユーザーは追加の資格情報や承認なしでデータをアップロードできます。 アップロードされたデータは、オブジェクトとしてバケットに保存されます。 詳細については、「署名付きURLでローカルファイルをアップロード」をご参照ください。
PUTリクエストコスト
多数のオブジェクトをアップロードし、オブジェクトのストレージクラスをDeep Cold Archiveに設定する場合は、高いPUTリクエスト料金が請求されます。 オブジェクトのアップロード時にオブジェクトのストレージクラスを標準に設定し、標準オブジェクトのストレージクラスをDeep Cold Archiveに変換するようにライフサイクルルールを設定することを推奨します。 これにより、PUTリクエスト料金が削減されます。
OSS-HDFSが有効なバケットへのアップロード
OSS-HDFSの安定性を維持し、データの損失を防ぐために、オブジェクトをにアップロードしないでください。OSS-HDFSでサポートされていないメソッドを使用したdlsdata/
ディレクトリ。
アップロード性能チューニング
多数のオブジェクトをアップロードし、オブジェクトの名前にタイムスタンプや文字などの連続したプレフィックスが含まれている場合、複数のオブジェクトインデックスが1つのパーティションに格納される可能性があります。 その結果、これらのオブジェクトを照会するために多数の要求が送信されると、待ち時間が増大する。 多数のオブジェクトをアップロードする場合は、シーケンシャルプレフィックスではなくランダムプレフィックスを使用してオブジェクト名を指定することをお勧めします。 詳細については、「OSSパフォーマンスとスケーラビリティのベストプラクティス」をご参照ください。
手順
OSSコンソールの使用
Alibaba Finance Cloudでは、インターネット経由でOSSにアクセスすることはできません。 したがって、OSSコンソールを使用してオブジェクトをアップロードすることはできません。 代わりに、ossbrowser、OSS SDK、ossutilなどのツールを使用してオブジェクトをアップロードできます。
OSSコンソールにログインします。
左側のナビゲーションウィンドウで、バケットリスト をクリックします。 [バケット] ページで、目的のバケットを見つけてクリックします。
左側のナビゲーションツリーで、ファイル > オブジェクト を選択します。
オブジェクト ページで、アップロード をクリックします。
表示されるページで、次の表に示すパラメーターを設定します。アップロード
基本設定を構成します。
パラメーター
説明
アップロード先
バケット内でオブジェクトがアップロードされるディレクトリ。
カレントディレクトリ: オブジェクトは現在のディレクトリにアップロードされます。
ディレクトリを指定する: オブジェクトは特定のディレクトリにアップロードされます。 ディレクトリの名前を入力する必要があります。 バケットに存在しないディレクトリを指定した場合、OSSは自動的にディレクトリを作成し、オブジェクトをディレクトリにアップロードします。
ディレクトリ名は次の要件を満たす必要があります。
名前は1 ~ 254文字である必要があります。 名前には UTF-8 文字のみを使用できます。
名前を、スラッシュ (/) またはバックスラッシュ (\) で始めることはできません。
名前に連続したスラッシュ (/) を含めることはできません。
名前を2つの連続したピリオド (
..
) にすることはできません。
オブジェクトACL
オブジェクトのACL。
バケットから継承: オブジェクトのACLはバケットのACLと同じです。
非公開: オブジェクトの所有者と許可されたユーザーのみが、オブジェクトの読み取りと書き込みができます。 他のユーザーはオブジェクトにアクセスできません。
公開読み取り: オブジェクトの所有者と承認されたユーザーのみが、オブジェクトの読み取りと書き込みを行うことができます。 匿名ユーザーを含む他のユーザーは、オブジェクトのみを読み取ることができます。 このACLを指定すると、すべてのユーザーがオブジェクトを読み取ることができます。 これにより、データリークや予想外に高い料金が発生する可能性があります。 作業は慎重に行ってください。
公開読み書き: 匿名ユーザーを含むすべてのユーザーがオブジェクトを読み書きできます。 これにより、データリークや予想外に高い料金が発生する可能性があります。 ユーザーが禁止されているデータや情報をオブジェクトに書き込むと、正当な利益や権利が侵害される可能性があります。 必要な場合を除き、このACLを指定しないことを推奨します。
ACLの詳細については、「オブジェクトACL」をご参照ください。
アップロードするファイル
アップロードするローカルファイルまたはディレクトリ。
ファイルの選択 をクリックしてローカルファイルを選択するか、フォルダーの選択 をクリックしてディレクトリを選択します。 ローカルファイルまたはディレクトリを [アップロードするファイル] セクションにドラッグすることもできます。
選択したディレクトリにアップロードしないローカルファイルが含まれている場合は、[アップロードするファイル] セクションのファイルリストでローカルファイルを見つけ、[操作] 列の [削除] をクリックしてファイルを削除します。
重要OSS内の既存のオブジェクトと同じ名前のローカルファイルをバージョン化されていないバケットにアップロードすると、アップロードされたオブジェクトは既存のオブジェクトを上書きします。
OSSの既存のオブジェクトと同じ名前のローカルファイルをバージョン管理が有効なバケットにアップロードすると、既存のオブジェクトは以前のバージョンになり、アップロードされたオブジェクトは現在のバージョンになります。
オプション。 詳細設定を構成します。
パラメーター
説明
ストレージクラス
オブジェクトのストレージクラス。
バケットから継承: オブジェクトのストレージクラスはバケットのストレージクラスと同じです。
スタンダード: 信頼性が高く、可用性が高く、パフォーマンスの高いストレージサービスを提供し、頻繁なデータアクセスを処理できます。 標準は、ソーシャルネットワーキングアプリケーション、画像、音声、およびビデオリソース共有アプリケーション、大規模Webサイト、およびビッグデータ分析など、さまざまなビジネスアプリケーションに適しています。
IA: 標準と比較して低価格で耐久性の高いストレージサービスを提供します。 低頻度アクセス (IA) の最小課金サイズは64 KBで、最小課金保存期間は30日です。 IAオブジェクトにリアルタイムでアクセスできます。 IAオブジェクトにアクセスすると、データ取得料金が発生します。 IAは、月に1回または2回アクセスされるデータなど、アクセス頻度の低いデータに適しています。
アーカイブ: 標準およびIAと比較して低価格で耐久性の高いストレージサービスを提供します。 アーカイブの最小課金サイズは64 KB、最小課金ストレージ期間は60日です。 アーカイブオブジェクトが復元された後、またはアーカイブオブジェクトのリアルタイムアクセスが有効になった後、アーカイブオブジェクトにアクセスできます。 アーカイブオブジェクトの復元に必要な時間は約1分です。 アーカイブオブジェクトを復元すると、データ取得料金が発生します。 アーカイブオブジェクトのリアルタイムアクセスを有効にした後にアーカイブオブジェクトにアクセスすると、アーカイブオブジェクトのサイズに基づいてアーカイブデータ取得料金が発生します。 アーカイブは、アーカイブデータ、医用画像、科学資料、ビデオ映像など、長期間保存する必要のあるデータに適しています。
コールドアーカイブ: アーカイブと比較して、耐久性の高いストレージサービスを低価格で提供します。 コールドアーカイブの最小課金サイズは64 KB、最小課金ストレージ期間は180日です。 オブジェクトにアクセスする前に、Cold Archiveオブジェクトを復元する必要があります。 Cold Archiveオブジェクトの復元に必要な時間は、オブジェクトのサイズと復元モードによって異なります。 Cold Archiveオブジェクトを復元すると、データ取得料金とAPI操作呼び出し料金が発生します。 コールドアーカイブは、コンプライアンス要件のために長期間保持する必要があるデータ、ビッグデータおよびAI分野で長期間にわたって蓄積された生データ、映画およびテレビ業界で保持されているメディアリソース、オンライン教育業界からのアーカイブされたビデオなど、長期間にわたるコールドデータの保存に適しています。
Deep Cold Archive: コールドアーカイブと比較して、耐久性の高いストレージサービスを低価格で提供します。 Deep Cold Archiveの最小課金サイズは64 KB、最小課金ストレージ期間は180日です。 アクセスする前に、Deep Cold Archiveオブジェクトを復元する必要があります。 Deep Cold Archiveオブジェクトの復元に必要な時間は、オブジェクトのサイズと復元モードによって異なります。 Deep Cold Archiveオブジェクトを復元すると、データ取得料金とAPI操作呼び出し料金が発生します。 Deep Cold Archiveは、ビッグデータやAI分野で長期間蓄積される生データ、長期保存が必要なメディアデータ、規制やポリシーのコンプライアンス要件により長期間保存する必要があるデータなど、非常にコールドなデータを長期間保存するのに適しています。長期保存のためにテープからクラウドに移行する必要があるデータ。
ストレージクラスの詳細については、「概要」をご参照ください。
暗号化の方法
オブジェクトのサーバー側の暗号化方法。
バケットから継承: オブジェクトの暗号化方法はバケットの暗号化方法と同じです。
OSS管理: OSSによって管理されるキーは、データの暗号化に使用されます。 OSSは、各オブジェクトを異なるキーで暗号化します。 OSSは、定期的にローテーションされたマスターキーも使用して暗号化キーを暗号化します。
KMS: key Management Service (KMS) に保存されているデフォルトの顧客マスターキー (CMK) 、または指定されたCMKを使用して、データの暗号化と復号化が行われます。 CMKパラメーターの説明:
暗号化アルゴリズム: AES-256のみがサポートされています。
ユーザー定義のメタデータ
オブジェクトに追加するユーザーメタデータ。 複数のユーザーメタデータを追加できます。 ただし、オブジェクトのユーザーメタデータの合計サイズは8 KBを超えることはできません。 ユーザーメタデータを追加する場合、ユーザーメタデータヘッダーに
x-oss-meta-
プレフィックスを含める必要があり、ヘッダーに値を指定する必要があります。 例: x-oss-meta-location:hangzhouアップロード をクリックします。
タスクのアップロードパネルでアップロードの進行状況を確認できます。
ossbrowserの使用
ossbrowserを使用して、OSSコンソールで実行できるのと同じバケットレベルの操作を実行できます。 ossbrowserの画面上の指示に従って、簡単なアップロードを実行できます。 ossbrowserの使用方法の詳細については、「ossbrowserの使用」をご参照ください。
OSS SDKの使用
次のサンプルコードでは、一般的なプログラミング言語でOSS SDKを使用して簡単なアップロードを実行する方法の例を示します。 他のプログラミング言語でOSS SDKを使用して簡単なアップロードを実行する方法の詳細については、「概要」をご参照ください。
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.PutObjectRequestをインポートします。com.aliyun.oss.mo del.PutObjectResultをインポートします。java.io. ファイルをインポートします。public classデモ {
public static void main(String[] args) throws Exception {
// この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
// バケットの名前を指定します。 例: examplebucket.
String bucketName = "examplebucket";
// オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。 例: exampledir/exampleobject.txt。
文字列objectName = "exampledir/exampleobject.txt";
// アップロードするローカルファイルのフルパスを指定します。 例: D :\\ localpath\\examplefile.txt。
// デフォルトでは、ローカルファイルのパスが指定されていない場合、サンプルプログラムが属するプロジェクトのパスからローカルファイルがアップロードされます。
String filePath= "D :\\ localpath\\examplefile.txt";
// Create an OSSClient instance.
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
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 (メタデータ);
// ローカルファイルをアップロードします。
PutObjectResult result = 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();
}
}
}
}
<?php
if (is_file(__DIR__) 。 '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__) 。 '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
OSS\OssClientを使用します。OSS\Core\OssExceptionを使用します。// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
$accessKeyId = getenv("OSS_ACCESS_KEY_ID");
$accessKeySecret = getenv("OSS_ACCESS_KEY_SECRET");
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
$end point = "yourEndpoint";
// バケットの名前を指定します。 例: examplebucket.
$bucket= "examplebucket";
// オブジェクトのフルパスを指定します。 例: exampledir/exampleobject.txt。 バケット名をフルパスに含めないでください。
$object = "exampledir/exampleobject.txt";
// <yourLocalFile> は、ローカルファイルパスと拡張子付きのファイル名で構成されます。 例: /users/local/myfile.txt
// アップロードするローカルファイルのフルパスを指定します。 例: D :\\ localpath\\examplefile.txt。 デフォルトでは、ローカルファイルのパスを指定しない場合、サンプルプログラムが属するプロジェクトのパスからファイルがアップロードされます。
$filePath = "D :\\ localpath\\examplefile.txt";
try {
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$ossClient->uploadFile($bucket、$object、$filePath);
} catch(OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage()) 。 "\n");
戻ります。}
print(__FUNCTION__) 。 「OK」。 "\n");
const OSS = require('ali-OSS ')
const path=require("path")
const client = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
region: 'yourregion' 、
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、環境変数OSS_ACCESS_KEY_IDとOSS_ACCESS_KEY_SECRETが設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID、
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET、
// バケットの名前を指定します。
bucket: 'examplebucket' 、});
// カスタムリクエストヘッダーを追加します。
const headers = {
// オブジェクトのストレージクラスを指定します。
「x-oss-storage-classs」: 「標準」、
// オブジェクトのアクセス制御リスト (ACL) を指定します。
'x-oss-object-acl': 'private' 、
// オブジェクトのURLを使用してオブジェクトにアクセスする場合は、オブジェクトを添付ファイルとしてダウンロードするように指定します。 この例では、ダウンロードしたオブジェクトの名前はexample.jpgです。
'Content-Disposition': 'attachment; filename="example.txt" '、
// オブジェクトのタグを指定します。 オブジェクトに複数のタグを同時に指定できます。
'x-oss-tagging ': 'Tag1=1&Tag2=2' 、
// PutObject操作が同じ名前のオブジェクトを上書きするかどうかを指定します。 この例では、x-oss-forbid-overwriteパラメーターをtrueに設定します。これは、同じ名前の既存のオブジェクトをアップロードしたオブジェクトで上書きできないことを指定します。
'x-oss-forbid-overwrite': 'true' 、};
async関数put () {
try {
// オブジェクトとローカルファイルのフルパスを指定します。 オブジェクトのフルパスにバケット名を含めないでください。
// ローカルファイルのパスが指定されていない場合、サンプルプログラムが属するプロジェクトのパスからローカルファイルがアップロードされます。
const result = await client.put('exampleobject.txt ', path.normalize('D :\\ localpath\\examplefile.txt')
// カスタムヘッダーを指定します。
,{headers}
);
console.log (結果);
} catch (e) {
console.log(e);
}
}
put();
# -*- coding: utf-8 -*-
oss2のインポート
osのインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
# バケットの名前を指定します。
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# ファイルはバイナリモードで開く必要があります。
# ローカルファイルのフルパスを指定します。 デフォルトでは、ローカルファイルのフルパスを指定しない場合、サンプルプログラムが属するプロジェクトのパスからローカルファイルがアップロードされます。
fileobjとしてオープン ('D :\\ localpath\\examplefile.txt '、'rb') を持つ:
# seekメソッドを使用して、ファイルのバイト1,000からデータを読み取ります。 データは、バイト1000からローカルファイルの最後のバイトまでアップロードされます。
fileobj.seek(1000, os.SEEK_SET)
# tellメソッドを使用して、現在の位置を取得します。
current = fileobj.tell()
# オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。
bucket.put_object ('exampleobject.txt ', fileobj)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title> ドキュメント </title>
</head>
<body>
<input id="file" type="file" />
<button id="upload"> オブジェクトのアップロード </button>
<script src="https://gosspublic.alicdn.com/aliyun-oss-sdk-6.18.0.min.js"></script>
<script>
const client = new OSS({
// バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンをoss-cn-Hangzhouに設定します。
region: "yourRegion" 、
// STSから取得した一時的なAccessKeyペアを指定します。 AccessKeyペアは、AccessKey IDとAccessKeyシークレットで構成されます。
accessKeyId: "yourAccessKeyId" 、
accessKeySecret: "yourAccessKeySecret" 、
// STSから取得したセキュリティトークンを指定します。
stsToken: "yourSecurityToken" 、
// バケットの名前を指定します。
bucket: "examplebucket" 、
});
// ドロップダウンリストからローカルファイルを選択します。 例: <input type="file" id="file" />
データを許可します。
// Blobデータを作成して指定します。
// const data = new Blob(['Hello OSS']);
// OSSバッファーを作成し、OSSバッファーの内容を指定します。
// const data = new OSS.Buffer(['Hello OSS']);
const upload = document.getElementById("upload");
async関数putObject(data) {
try {
// オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。
// 現在のバケットまたはバケット内の特定のディレクトリにデータをアップロードするオブジェクト名またはオブジェクトの完全パスを指定します。 たとえば、オブジェクト名をexampleobject.txtに設定するか、オブジェクトのパスをexampledir/exampleobject.txtに設定します。
// データをファイル、Blobデータ、またはOSSバッファに設定できます。
const options = {
meta: { temp: "demo"} 、
mime: "json" 、
ヘッダー: { "Content-Type": "text/plain"} 、
};
const result = await client.put("examplefile.txt" 、データ、オプション);
console.log (結果);
} catch (e) {
console.log(e);
}
}
upload.addEventListener("click", () => {
const data = file.files[0];
putObject (データ);
});
</script>
</body>
</html>
Aliyun.OSSを使用した
;
// バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
var endpoint = "yourEndpoint";
// 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// バケットの名前を指定します。 例: examplebucket.
var bucketName = "examplebucket";
// オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。 例: exampledir/exampleobject.txt。
var objectName = "exampledir/exampleobject.txt";
// アップロードするローカルファイルのフルパスを指定します。 デフォルトでは、ローカルファイルのフルパスを指定しない場合、サンプルプログラムが属するプロジェクトのパスからローカルファイルがアップロードされます。
var localFilename = "D :\\ localpath\\examplefile.txt";
// OSSClientインスタンスを作成します。
var client = new OssClient (エンドポイント、accessKeyId、accessKeySecret);
トライ
{
// ローカルファイルをアップロードします。
client.PutObject(bucketName, objectName, localFilename);
Console.WriteLine("Put object successed");
}
キャッチ (例外ex)
{
Console.WriteLine("Put object failed, {0}", ex.Message);
}
// アップロードリクエストを作成します。
// バケットの名前、オブジェクトのフルパス、およびローカルファイルのフルパスを指定します。 この例では、バケットの名前はexamplebucket、オブジェクトのフルパスはexampledir/exampleobject.txt、ローカルファイルのフルパスは /storage/emulated/0/oss/examplefile.txtです。
// オブジェクトのフルパスにバケット名を含めないでください。
PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", "/storage/emulated/0/oss/examplefile.txt");
// (オプション) オブジェクトメタデータを指定します。
ObjectMetadata metadata = new ObjectMetadata();
// metadata.setContentType("application/octet-stream"); // コンテンツタイプを設定します。
// metadata.setContentMD5(BinaryUtil.ca lculateBase64Md5(uploadFilePath)); // MD5検証に使用されるMD5ハッシュを指定します。
// オブジェクトのACLをprivateに設定します。
metadata.setHeader("x-oss-object-acl", "private");
// オブジェクトのストレージクラスをStandardに設定します。
metadata.setHeader("x-oss-storage-class" 、"Standard");
// 既存のオブジェクトと同じ名前のアップロードされたオブジェクトが既存のオブジェクトを上書きしないように指定します。
// metadata.setHeader("x-oss-forbid-overwrite", "true");
// オブジェクトのタグを指定します。 オブジェクトに複数のタグを同時に指定できます。
// metadata.setHeader("x-oss-tagging", "a:1");
// OSSがオブジェクトを作成するときにオブジェクトを暗号化するために使用されるサーバー側の暗号化アルゴリズムを指定します。
// metadata.setHeader("x-oss-server-side-encryption", "AES256");
// KMSによって管理されるCMKを指定します。 このパラメーターは、x-oss-server-side-encryptionがKMSに設定されている場合にのみ有効です。
// metadata.setHeader("x-oss-server-side-encryption-key-id", "9468da86-3509-4f8d-a61e-6eab1eac ****");
put.setMetadata (メタデータ);
try {
PutObjectResult putResult = oss.putObject(put);
Log.d("PutObject", "UploadSuccess");
Log.d("ETag", putResult.getETag());
Log.d("RequestId", putResult.getRequestId());
} catch (ClientException e) {
// ネットワークエラーなどのクライアント側の例外を処理します。
e.printStackTrace();
} catch (ServiceException e) {
// サーバー側の例外を処理します。
Log.e("RequestId", e.getRequestId());
Log.e("ErrorCode", e.getErrorCode());
Log.e("HostId", e.getHostId());
Log.e("RawMessage", e.getRawMessage());
}
パッケージメイン
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)
}
}
OSSPutObjectRequest * put = [OSSPutObjectRequest new];
// バケットの名前を指定します。 例: examplebucket.
put.bucketName = @ "examplebucket";
// オブジェクトのフルパスを指定します。 例: exampledir/exampleobject.txt。 バケット名をフルパスに含めないでください。
put.objectKey = @ "exampledir/exampleobject.txt";
put.uploadingFileURL = [NSURL fileURLWithPath:@ "<filePath>"];
// put.uploadingData = <NSData *>; // NSDataを直接アップロードします。
// (オプション) アップロードの進行状況インジケーターを設定します。
put.uploadProgress = ^(int64_t bytesSent, int64_t totalByteSent, int64_t totalBytesExpectedToSend) {
// アップロードするバイト数、アップロードするバイト数、およびアップロードする合計バイト数を指定します。
NSLog(@ "% lld, % lld, % lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
};
// オプションのフィールドを設定します。
// put.contentType = @ "application/octet-stream";
// Content-MD5を指定します。
// put.contentMd5 = @ "eB5eJF1ptWaXm4bijSPyxw=";
// オブジェクトのエンコードに使用されるメソッドを指定します。
// put.contentEncoding = @ "identity";
// オブジェクトコンテンツの表示に使用するメソッドを指定します。
// put.contentDisposition = @ "attachment";
// オブジェクトメタデータまたはHTTPヘッダーを設定します。
// NSMutableDictionary * meta = [NSMutableDictionary];
// オブジェクトメタデータを指定します。
// [meta setObject:@ "value" forKey:@ "x-oss-meta-name1"];
// オブジェクトのアクセス制御リスト (ACL) をprivateに設定します。
// [meta setObject:@ "private" forKey:@ "x-oss-object-acl"];
// オブジェクトのストレージクラスをStandardに設定します。
// [meta setObject:@ "標準" forKey:@ "x-oss-storage-class"];
// このアップロードで同じ名前の既存のオブジェクトを上書きするように指定します。
// [meta setObject:@ "true" forKey:@ "x-oss-forbid-overwrite"];
// オブジェクトに1つ以上のタグを指定します。
// [meta setObject:@ "a:1" forKey:@ "x-oss-tagging"];
// object Storage Service (OSS) がオブジェクトを作成するときに、ターゲットオブジェクトの暗号化に使用されるサーバー側の暗号化アルゴリズムを指定します。
// [meta setObject:@ "AES256" forKey:@ "x-oss-server-side-encryption"];
// KMSによって管理されるCMKを指定します。 このパラメーターは、x-oss-server-side-encryptionがKMSに設定されている場合にのみ有効です。
// [meta setObject:@ "9468da86-3509-4f8d-a61e-6eab1eac ****" forKey:@ "x-oss-server-side-encryption-key-id"];
// put.objectMeta = meta;
OSSTask * putTask = [client putObject:put];
[putTask continueWithBlock:^ id(OSSTask * task) {
if (!task.error) {
NSLog(@ "オブジェクトのアップロード成功!");
} else {
NSLog(@ "オブジェクトのアップロードに失敗、エラー: % @" 、task.error);
}
nilを返します。}];
// waitUntilFinishedは現在のスレッドの実行をブロックしますが、タスクの進行はブロックしません。
// [putTask waitUntilFinished];
// [put cancel];
#include <alibabacloud/oss/OssClient.h>
# include <fstream>
名前空間listaCloud::OSSを使用します。int main(void)
{
/* OSSへのアクセスに使用されるアカウントに関する情報を初期化します。 */
/* バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 */
std::string Endpoint = "yourEndpoint";
/* バケットの名前を指定します。 例: examplebucket. */
std::string BucketName = "examplebucket";
/* オブジェクトのフルパスを指定します。 オブジェクトのフルパスにバケット名を含めないでください。 例: exampledir/exampleobject.txt。 */
std::string ObjectName = "exampledir/exampleobject.txt";
/* ネットワークリソースなどのリソースを初期化します。 */
InitializeSdk();
ClientConfiguration conf;
/* 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClientクライアント (Endpoint, credentialsProvider, conf);
/* ローカルファイルのフルパスを指定します。 例: D :\\ localpath\\examplefile.txt。 この例では、localpathはexamplefile.txtファイルが格納されているローカルパスを示します。 */
std::shared_ptr<std::iostream> content = std::make_shared<std::fstream>("D :\\ localpath\\examplefile.txt", std::ios::in | std::ios:: バイナリ);
PutObjectRequestリクエスト (BucketName, ObjectName, content);
/* (オプション) オブジェクトのACLをprivateに、ストレージクラスをStandardに設定します。 */
// request.MetaData().addHeader("x-oss-object-acl", "private");
// request.MetaData().addHeader("x-oss-storage-class", "Standard");
auto outcome = client.PutObject (リクエスト);
if (!outcome.isSuccess()) {
/* 例外を処理します。 */
std::cout << "PutObject fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
return -1;
}
/* ネットワークリソースなどのリソースを解放します。 */
ShutdownSdk();
0を返します。}
#include "oss_api.h"
# 「aos_http_io.h」を含める
/* バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 * /
const char * endpoint = "yourEndpoint";
/* バケットの名前を指定します。 例: examplebucket. * /
const char * bucket_name = "examplebucket";
/* オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。 例: exampledir/exampleobject.txt。 * /
const char * object_name = "exampledir/exampleobject.txt";
const char * object_content = "クラウドだけではありません。";
void init_options(oss_request_options_t * オプション)
{
options->config = oss_config_create(options->pool);
/* char * stringを使用して、aos_string_t型のデータを初期化します。 */
aos_str_set(&options->config->endpoint, endpoint);
/* 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 */
aos_str_set(&options->config->access_key_id, getenv("OSS_ACCESS_KEY_ID"));
aos_str_set(&options->config->access_key_secret, getenv("OSS_ACCESS_KEY_SECRET"));
/* CNAMEを使用するかどうかを指定します。 値0は、CNAMEが使用されないことを示す。 */
options->config->is_cname = 0;
/* タイムアウト期間などのネットワークパラメーターを設定します。 */
options->ctl = aos_http_controller_create(options->pool, 0);
}
int main(int argc, char * argv[])
{
/* main() でaos_http_io_initializeメソッドを呼び出して、ネットワークリソースやメモリリソースなどのグローバルリソースを初期化します。 */
if (aos_http_io_initialize(NULL, 0))! =AOSE_OK) {
exit(1);
}
/* メモリを管理するためのメモリプールを作成します。 aos_pool_tはapr_pool_tと同じです。 メモリプールの作成に使用されるコードは、APRライブラリに含まれています。 */
aos_pool_t *pool;
/* メモリプールを作成します。 2番目のパラメーターの値はNULLです。 この値は、プールが他のメモリプールを継承しないことを示します。 */
aos_pool_create(&pool, NULL);
/* Create and initialize options. このパラメーターには、エンドポイント、access_key_id、access_key_secret、is_cname、curlなどのグローバル構成情報が含まれます。 */
oss_request_options_t *oss_client_options;
/* メモリプール内のメモリリソースをオプションに割り当てます。 */
oss_client_options = oss_request_options_create(pool);
/* oss_client_optionsを初期化します。 */
init_options(oss_client_options);
/* パラメーターを初期化します。 */
aos_string_t bucket;
aos_string_t object;
aos_list_t buffer;
aos_buf_t *content = NULL;
aos_table_t *headers = NULL;
aos_table_t *resp_headers = NULL;
aos_status_t *resp_status = NULL;
aos_str_set(&bucket, bucket_name);
aos_str_set(&object, object_name);
aos_list_init(&buffer);
content = aos_buf_pack(oss_client_options->pool, object_content, strlen(object_content));
aos_list_add_tail(&content->node, &buffer);
/* オブジェクトをアップロードします。 */
resp_status = oss_put_object_from_buffer(oss_client_options, &bucket, &object, &buffer, headers, &resp_headers);
/* オブジェクトがアップロードされているかどうかを確認します。 */
if (aos_status_is_ok(resp_status)) {
printf("put object from buffer succeeded\n");
} else {
printf("put object from buffer failed\n");
}
/* メモリプールを解放します。 この操作により、リクエストに割り当てられたメモリリソースが解放されます。 */
aos_pool_destroy(pool);
/* 割り当てられたグローバルリソースを解放します。 */
aos_http_io_deinitialize();
0を返します。}
'aliyun/oss' が必要です
client = Aliyun::OSS::Client.new (
# この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。
エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)
# バケットの名前を指定します。 例: examplebucket.
bucket = client.get_bucket('examplebucket')
# オブジェクトをアップロードします。
bucket.put_object ('exampleobject.txt ', :file => 'D :\\ localpath\\examplefile.txt')
ossutilの使用
ossutilを使用して簡易アップロードを実行する方法の詳細については、「オブジェクトのアップロード」をご参照ください。
OSS APIの使用
ビジネスで高度なカスタマイズが必要な場合は、RESTful APIを直接呼び出すことができます。 APIを直接呼び出すには、コードに署名計算を含める必要があります。 詳細は、「PutObject」をご参照ください。
参考資料
プロキシを使用せずに、クライアントから直接OSSにファイルをアップロードすることを推奨します。 これにより、アップロードが高速化され、アプリケーションサーバーとの間でオブジェクトを転送する必要がなくなり、サーバーリソースが節約されます。 詳細については、「概要」をご参照ください。
シンプルアップロードを使用してデータをアップロードする場合、複数のユーザーメタデータを追加して、アップロードするオブジェクトを記述できます。 たとえば、Content-Typeなどの標準HTTPヘッダーを指定したり、ユーザーメタデータを指定したりできます。 オブジェクトメタデータの詳細については、「オブジェクトメタデータの管理」をご参照ください。
オブジェクトをOSSにアップロードした後、アップロードコールバックを使用して、指定されたアプリケーションサーバーにコールバックリクエストを送信できます。 詳細については、「コールバックのアップロード」をご参照ください。
イメージオブジェクトをアップロードした後、イメージオブジェクトを圧縮し、イメージオブジェクトのカスタムスタイルを設定することもできます。 詳細については、「IMG実装モード」をご参照ください。
画像のアップロード後に画像サイズを取得する必要がある場合は、
を指定できますか? x-oss-process=image/info
をして、イメージに関する基本情報を照会します。 詳細については、「イメージのEXIFデータの照会」をご参照ください。アップロードされた画像またはビデオに対して、テキストの認識、字幕の抽出、トランスコーディング、サムネイルの生成などの操作を実行する場合は、「機能と機能」をご参照ください。
アップロードされたオブジェクトのURLに署名情報を追加し、署名されたURLを共有して、第三者がオブジェクトにアクセスできるようにすることができます。 詳細については、「URLへの署名の追加」をご参照ください。
オブジェクトのURLを使用してブラウザからオブジェクトにアクセスする場合、オブジェクトをプレビューするかダウンロードするかは、URLのタイプとオブジェクトを格納するバケットの作成時間によって決まります。 詳細については、「画像オブジェクトが添付ファイルとしてダウンロードされても、URLを使用して画像オブジェクトにアクセスするとプレビューできない場合の対処方法」をご参照ください。