src/Framework/OSS/OSS.Qiniu/QiniuHelper.cs

(开头部分) 3KB

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

using System;
using System.IO;
using Microsoft.Extensions.Logging;
using NetModular.Lib.OSS.Abstractions;
using NetModular.Lib.Utils.Core.Attributes;
using Qiniu.Storage;
using Qiniu.Util;

namespace NetModular.Lib.OSS.Qiniu
{
    /// <summary>
    /// 七牛帮助类
    /// </summary>
    [Singleton]
    public class QiniuHelper
    {
        private readonly QiniuTokenManager _tokenManager;
        private readonly ILogger<QiniuHelper> _logger;
        private readonly QiniuConfig _config;

        public QiniuHelper(QiniuTokenManager tokenManager, ILogger<QiniuHelper> logger, OSSConfig config)
        {
            _tokenManager = tokenManager;
            _logger = logger;
            _config = config.Qiniu;
        }

        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="physicalPath">物理路径</param>
        /// <param name="key">文件key</param>
        /// <returns></returns>
        public bool Upload(string physicalPath, string key)
        {
            if (physicalPath.IsNull())
                return false;

            var config = new Config
            {
                Zone = QiniuZone2Zone(_config.Zone),
                UseHttps = true,
                UseCdnDomains = true,
                ChunkSize = ChunkUnit.U512K
            };

            if (key.IsNull())
            {
                key = Path.GetFileName(physicalPath);
            }

            key = key.Replace('\\', '/');
            var target = new FormUploader(config);
            var result = target.UploadFile(physicalPath, key, _tokenManager.GetToken(), null);

            _logger.LogDebug("七牛上传结果:{@result}", result.ToString());

            return result.Code == 200;
        }

后面还有 42 行代码,解锁后查看完整代码

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

AI 解读

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

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