华为云上传文件生成签名

use Obs\ObsClient;

/**
     * 上传图片
     * @param string $file
     */
    public function uploadImgAndFile($file)
    {

        // 创建ObsClient实例
        $obsClient = new ObsClient([
            'key' => sysconfig('upload', 'huaweioss_accessKey'),
            'secret' => sysconfig('upload', 'huaweioss_accessKeySecret'),
            'endpoint' => sysconfig('upload', 'huaweioss_endpoint')
        ]);
        $filename = 'upload/'.date('Y', time()).'/'. date('m', time()).'/'.date('d', time()).'/'.time().rand(1000, 9999).'.png';
        $resp = $obsClient->putObject([
            'Bucket' => sysconfig('upload', 'huaweioss_bucket'),//桶名
            'Key' => $filename,//文件名
            'SourceFile' => $file  // localfile为待上传的本地文件路径,需要指定到具体的文件名
        ]);
        if ($resp['Reason'] == 'OK') {
            $url =$resp['ObjectURL'];
            return $filename;
        } else {
            throw new ValidateException('上传失败');
        }
    }


    /**
     * 签名生成 前端上传需要
     * @param string $object 文件名
     * @param string $file_type 文件类型
     */
    public function obsSignature(){

        $object = 'upload/'.date('Y', time()).'/'. date('m', time()).'/'.date('d', time()).'/'.time().mt_rand(1000, 9999).'.png'; //文件名
        $file_type = 'image/png'; //文件类型 image/jpeg
        $obsClient = new ObsClient([ 
                'key' => sysconfig('upload', 'huaweioss_accessKey'),           //OBS 中的 AK
                'secret' => sysconfig('upload', 'huaweioss_accessKeySecret'),      //OBS 中的 SK
                'endpoint' => "https://" . sysconfig('upload', 'huaweioss_endpoint'), //注意实际的终点可能不同
                'signature' => 'obs',
        ]);

        // URL有效期,3600秒
        $expires = 3600;

        // 上传对象
        $resp = $obsClient->createPostSignature([ 
            'Bucket' => sysconfig('upload', 'huaweioss_bucket'),	//你自己的桶名(bucket)
            'Key' => $object,
            'Expires' => $expires,
            'FormParams' => [
                'x-obs-acl' => 'public-read',
                'content-type' => $file_type,
            ]
        ]);
        
        // printf($resp);
        $data['Accesskeyid'] = sysconfig('upload', 'huaweioss_accessKey');  //OBS 中的AK
        $data['Policy'] = $resp['Policy'];
        $data['Signature'] = $resp['Signature'];
        $data['Key'] = $object;
        $data['ContentType'] = $file_type;
        $data['huaweioss_region'] = "https://" . sysconfig('upload', 'huaweioss_region');
        return json_encode($data);
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为云OBS(Object Storage Service)是一种可扩展的云存储服务,通过它可以方便地进行文件的存储、备份和批量上传等操作。 要实现华为云OBS文件的批量上传,我们可以采用以下步骤: 1. 首先,需要在华为云上创建一个OBS存储桶。在华为云控制台中,选择OBS服务,然后点击创建存储桶,并根据需要配置存储桶的相关参数。 2. 在本地计算机上准备好需要上传的文件,可以将这些文件放在同一个文件夹中,方便进行批量操作。 3. 接下来,可以使用华为云提供的OBS SDK,根据编程语言的不同选择相应的SDK版本。一般可以通过安装SDK的方式,引入SDK到项目中。 4. 在代码中,首先需要进行OBS的验证,即提供访问华为云账号的认证信息(Access Key和Secret Key),以便进行API调用。 5. 在验证通过之后,可以使用SDK提供的方法,选择需要上传的文件路径和OBS存储桶的名称等相关参数。然后使用循环或批量操作的方式,依次上传文件。 6. 上传过程中,可以监听上传的进度和状态,以便得知文件上传是否成功。 7. 完成文件上传后,可以通过华为云控制台,或者使用OBS SDK提供的API方法,查看已上传的文件。 总的来说,华为云OBS文件的批量上传可以通过使用OBS SDK来实现,在代码中调用相应的API方法,依次上传文件即可。通过这种方式,可以提高上传效率,简化操作步骤,方便批量上传大量文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值