阿里云里oss图片上传的复制文件地址太长了,怎么办?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云里oss图片上传的复制文件地址太长了,怎么办?相关的知识,希望对你有一定的参考价值。

参考技术A 可以使用缩短试一试看看能不能行 或者换成其他的地址本回答被提问者采纳 参考技术B

这个没办法,你最好短一些,另外你不懂的话可以在线提交工单,问问技术即可。

另外给新人介绍下oss就是存储图片,视频,音频用的,目前阿里云对象存储oss有活动68折 我分享给你地址oss阿里云对象存储

Laravel 上传文件到阿里云

  • 在laravel 安装的根目录下,执行命令 composer require aliyuncs/oss-sdk-php 下载阿里云sdk。
    技术图片

  • 代码实现,上传文件类
    
    use OSSCoreOssException;
    use OSSOssClient;
  • //上传图片
    class uploadImgCombine
    {
    /**

    • 上传本地图片到oss
    • @param string $sourcePath 本地源文件地址
    • @param string $format 保存的文件后缀
    • @param string $imgFullName 自定义保存的文件名+后缀
    • @param string $folder 自定义保存的目录 如 product
    • @param boolean $save 是否保存到数据库
    • @return array|string
      */
      public function uploadLocalToOss($sourcePath, $format = ‘jpg‘, $imgFullName = ‘‘, $folder = ‘‘, $save = false)
      {
      //检查图片是否是OSS地址
      if (!file_exists($sourcePath))
      {
      return [‘msg‘ => ‘文件不存在‘, ‘code‘ => 1001];
      }

      // 文件名称(传到OOS后要保证唯一,重名的无法上传)
      $object = $imgFullName ? $imgFullName : date(‘YmdHis‘).CommonHelpers::rand(4, 0).‘.‘.$format;
      
      //oss保存地址
      $ossSaveFilePath = $folder ? $folder.‘/‘.$object : $object;
      
      //读取配置
      //$conf = json_decode(getenv(‘ALIYUN‘), true);
      //$accessKeyId = $conf[‘appkey‘] ?? ‘‘;
      //$accessKeySecret = $conf[‘secret‘] ?? ‘‘;
      //$endpoint = $conf[‘endpoint‘] ?? ‘‘;
      
      $accessKeyId = env(‘ALIYUN_ACCESS_KEY_ID‘);
      $accessKeySecret = env(‘ALIYUN_ACCESS_KEY_SECRET‘);
      $endpoint = env(‘ALIYUN_OSS_ENDPOINT‘);
      
      // 存储空间名称
      $bucket = env(‘ALIYUN_OSS_BUCKET‘) ?? ‘‘;
      
      try
      {
          //上传
          $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
          $rel = $ossClient->uploadFile($bucket, $ossSaveFilePath, $sourcePath);
      }
      catch (OssException $e)
      {
          return [‘msg‘ => $e->getMessage(), ‘code‘ => $e->getCode()];
      }
      
      //验证是否上传成功
      if (isset($rel[‘oss-request-url‘]))
      {
          $id = ‘‘;
      
          //保存到数据库
          /*if($save)
          {
              $id = CommonImageModel::saveOneData([
                  ‘root_url‘ => $ossSaveFilePath,
                  ‘small_url‘ => $ossSaveFilePath,
                  ‘create_time‘ => time(),
                  ‘origin_url‘ => ‘‘,
              ]);
          }*/
      
          return [
              ‘filePath‘ => env(‘ALIYUN_OSS_URL‘) . $ossSaveFilePath,
              ‘id‘ => $id
          ];
      }
      
      //返回
      return [‘msg‘ => ‘上传失败‘, ‘code‘ => 1201];

      }

    }

    
    使用这个类
    

    if(empty($attachment)){
    return JsonResult::fail([],‘请上传文件‘);
    }

                if($attachment->getSize() > 300*1024*1024)
                {
                    return JsonResult::fail([],‘上传作品不能超过300M‘);
                }
    
                if(!$attachment || !$attachment->isValid())
                {
                    return JsonResult::fail([],‘上传作品失败‘);
                }
    
                //上传
                $filePath = $attachment->getRealPath(); //获取文件临时存放位置
                $format = $attachment->getClientOriginalExtension();//上传文件的后缀
                $result = (new uploadImgCombine())->uploadLocalToOss($filePath, $format, ‘‘, ‘work‘, true);
    
                //返回
                if(isset($result[‘msg‘]))
                {
                    return JsonResult::fail([], $result[‘msg‘], $result[‘code‘]);
                }
                $attachment_path = $result[‘filePath‘];

    以上是关于阿里云里oss图片上传的复制文件地址太长了,怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

    给我一个图片地址短点的网络相册地址,我以前用那个网络相册图片地址太长了,当签名档特占地方

    阿里云oss无法上传大文件怎么办

    阿里云oss python sdk怎么上传一个目录

    请教阿里云 OSS 使用方法

    阿里云OSS怎么接到dede去

    上传图片到阿里云oss