[.NET]阿里雲OSS上傳下載與生成圖片連結
阿新 • • 發佈:2020-07-21
專案中需要新增以下依賴項,在控制檯中執行安裝依賴項:
Install-Package Aliyun.OSS.SDK --適用於.NET版本
Install-Package Aliyun.OSS.SDK.NetCore --適用.NET Core版本
以下是封裝的上傳下載以及生成圖片連結的方法:
/// <summary>
/// 上傳檔案
/// </summary>
/// <param name="accessKeyId">開發者祕鑰對,通過阿里雲控制檯的祕鑰管理頁面建立與管理</param>
/// <param name="accessKeySecret">開發者祕鑰對,通過阿里雲控制檯的祕鑰管理頁面建立與管理</param>
/// <param name="endpoint">Endpoint,建立Bucket時對應的Endpoint</param>
/// <param name="bucketName">Bucket名稱,建立Bucket時對應的Bucket名稱</param>
/// <param name="key">檔案標識</param>
/// <param name="file">需要上傳檔案的檔案路徑</param>
public static void PutObject(string accessKeyId, string accessKeySecret, string endpoint, string bucketName, string key, string file)
{
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
client.PutObject(bucketName, key, file);
}
catch (OssException ex)
{
LogHelper.LogException<OssException>(
$"Msg:{ex.Message};Code:{ex.ErrorCode};RequestID:{ex.RequestId};HostID:{ex.HostId}");
}
}
/// <summary>
/// 下載檔案
/// </summary>
/// <param name="accessKeyId">開發者祕鑰對,通過阿里雲控制檯的祕鑰管理頁面建立與管理</param>
/// <param name="accessKeySecret">開發者祕鑰對,通過阿里雲控制檯的祕鑰管理頁面建立與管理</param>
/// <param name="endpoint">Endpoint,建立Bucket時對應的Endpoint</param>
/// <param name="bucketName">Bucket名稱,建立Bucket時對應的Bucket名稱</param>
/// <param name="key">檔案標識</param>
/// <param name="file">下載存放的檔案路徑</param>
public static void GetObject(string accessKeyId, string accessKeySecret, string endpoint, string bucketName, string key, string file)
{
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
var result = client.GetObject(bucketName, key);
using (var requestStream = result.Content)
{
using (var fs = File.Open(file, FileMode.OpenOrCreate))
{
int length = 4 * 1024;
var buf = new byte[length];
do
{
length = requestStream.Read(buf, 0, length);
fs.Write(buf, 0, length);
} while (length != 0);
}
}
}
catch (OssException ex)
{
LogHelper.LogException<OssException>(
$"Msg:{ex.Message};Code: