SuLei.API/Cloud/AliyunOss.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;

namespace SuLei.API.Cloud
{
    public class AliyunOss
    {
        string EndPoint = string.Empty;
        string AccessKeyId = string.Empty;
        string AccessKeySecret = string.Empty;
        Aliyun.OSS.OssClient client;

        public AliyunOss(string endpoint, string accessKeyId, string accessKeySecret)
        {
            EndPoint = endpoint;
            AccessKeyId = accessKeyId;
            AccessKeySecret = accessKeySecret;
            client = new Aliyun.OSS.OssClient("https://" + EndPoint, AccessKeyId, AccessKeySecret);
        }

        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="byteData">文件流数组</param>
        /// <param name="bucketName">存储空间名称</param>
        /// <param name="key">文件名</param>
        /// <param name="customDmain">自定义域名</param>
        /// <param name="result">成功则返回文件地址否则返回错误信息</param>
        /// <returns>是否上传成功</returns>
        public bool PutObject(byte[] byteData, string bucketName, string key, string customDmain, out string result)
        {
            using (Stream fileStream = new MemoryStream(byteData))//转成Stream流  
            {
                string md5 = Aliyun.OSS.Util.OssUtils.ComputeContentMd5(fileStream, byteData.Length);
                try
                {
                    //将文件md5值赋值给meat头信息,服务器验证文件MD5  
                    var objectMeta = new Aliyun.OSS.ObjectMetadata
                    {
                        ContentMd5 = md5,
                    };
                    //文件上传--空间名、文件保存路径、文件流、meta头信息(文件md5)
                    client.PutObject(bucketName, key.TrimStart('/'), fileStream, objectMeta);
                    if (string.IsNullOrEmpty(customDmain))
                    {
                        result = "http://" + bucketName + "." + EndPoint + "/" + key.TrimStart('/'); //默认网址
                    }
                    else
                    {
                        result = customDmain.TrimEnd('/') + "/" + key.TrimStart('/'); //自定义网址
                    }
                    return true;
                }
                catch (Exception e)
                {
                    result = e.Message;
                    return false;
后面还有 91 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。