日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

.NET管理文件元數據

對象存儲OSS存儲的文件(Object)信息包含Key、DataObject Meta。Object Meta是對文件的屬性描述,包括HTTP標準屬性(HTTP Header)和用戶自定義元數據(User Meta)兩種。您可以通過設置HTTP標準屬性來自定義HTTP請求的策略,例如文件(Object)緩存策略、強制下載策略等。您還可以通過設置用戶自定義元數據來標識Object的用途或屬性等。

注意事項

  • 本文以華東1(杭州)外網Endpoint為例。如果您希望通過與OSS同地域的其他阿里云產品訪問OSS,請使用內網Endpoint。關于OSS支持的RegionEndpoint的對應關系,請參見OSS地域和訪問域名

  • 本文以OSS域名新建OSSClient為例。如果您希望通過自定義域名、STS等方式新建OSSClient,請參見初始化

  • 要設置文件元數據,您必須具有oss:PutObject權限;要獲取文件元數據,您必須具有oss:GetObject權限。具體操作,請參見RAM用戶授權自定義的權限策略

示例代碼

以下代碼用于設置、修改和獲取文件元數據:

using Aliyun.OSS;
using Aliyun.OSS.Common;
using Aliyun.OSS.Util;

// yourEndpoint填寫Bucket所在地域對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為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");
// 填寫Bucket名稱。
var bucketName = "examplebucket";
// 填寫Object完整路徑。Object完整路徑中不能包含Bucket名稱。
var objectName = "exampleobject.txt";
// 填寫本地文件的完整路徑。如果未指定本地路徑,則默認從示例程序所屬項目對應本地路徑中上傳文件。
var localFilename = "D:\\localpath\\examplefile.txt";
// 填寫Bucket所在地域對應的Region。以華東1(杭州)為例,Region填寫為cn-hangzhou。
const string region = "cn-hangzhou";

// 創建ClientConfiguration實例,按照您的需要修改默認參數。
var conf = new ClientConfiguration();

// 設置v4簽名。
conf.SignatureVersion = SignatureVersion.V4;

// 創建OssClient實例。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
c.SetRegion(region);
try
{
    using (var fs = File.Open(localFilename, FileMode.Open))
    {
        // 創建上傳文件的元數據,可以通過文件元數據設置HTTP header。
        var metadata = new ObjectMetadata()
        {
            // 指定文件類型。
            ContentType = "text/html",
            // 設置緩存過期時間,格式是格林威治時間(GMT)。
            ExpirationTime = DateTime.Parse("2025-10-12T00:00:00.000Z"),
        };
        // 設置上傳文件的長度。如超過此長度,則會被截斷為設置的長度。如不足,則為上傳文件的實際長度。
        metadata.ContentLength = fs.Length;
        // 設置文件被下載時網頁的緩存行為。
        metadata.CacheControl = "No-Cache";
        // 設置元數據mykey1值為myval1。
        metadata.UserMetadata.Add("mykey1", "myval1");
        // 設置元數據mykey2值為myval2。
        metadata.UserMetadata.Add("mykey2", "myval2");
        var saveAsFilename = "文件名測試123.txt";
        var contentDisposition = string.Format("attachment;filename*=utf-8''{0}", HttpUtils.EncodeUri(saveAsFilename, "utf-8"));
        // 把請求所得的內容存為一個文件的時候提供一個默認的文件名。
        metadata.ContentDisposition = contentDisposition;
        // 上傳文件并設置文件元數據。
        client.PutObject(bucketName, objectName, fs, metadata);
        Console.WriteLine("Put object succeeded");
        // 獲取文件元數據。
        var oldMeta = client.GetObjectMetadata(bucketName, objectName);
        // 設置新的文件元數據。
        var newMeta = new ObjectMetadata()
        {
            ContentType = "application/octet-stream",
            ExpirationTime = DateTime.Parse("2035-11-11T00:00:00.000Z"),
            // 指定文件被下載時的內容編碼格式。
            ContentEncoding = null,
            CacheControl = ""
        };
        // 增加自定義元數據。
        newMeta.UserMetadata.Add("author", "oss");
        newMeta.UserMetadata.Add("flag", "my-flag");
        newMeta.UserMetadata.Add("mykey2", "myval2-modified-value");
        // 通過ModifyObjectMeta方法修改文件元數據。
        client.ModifyObjectMeta(bucketName, objectName, newMeta);
    }
}
catch (Exception ex)
{
    Console.WriteLine("Put object failed, {0}", ex.Message);
}

相關文檔

  • 關于設置、修改和獲取文件元數據的完整示例代碼,請參見GitHub示例

  • 關于在簡單上傳過程中設置文件元數據的API接口說明,請參見PutObject

  • 關于在拷貝文件過程中修改文件元數據的API接口說明,請參見CopyObject

  • 關于獲取文件元數據的API接口說明,請參見GetObjectMetaHeadObject