阿里云OSS上传文件以及获取文件

6 篇文章 0 订阅

1、新建bucket (文件存储空间名称),bucket下也可以继续创建目录

 

2、通过短信验证码创建accessKey,保存accessKeyID和accessKeySecret:

3、添加oss管理文件时需要的配置(选区endpoint的时候一定要选对应外网的)

 4、部分管理文件的函数封装

/**
 * 上传文件
 * @param $name
 * @param $path
 * @return bool
 */
public static function upload($name, $path)
{
    // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 	https://ram.console.aliyun.com 创建RAM账号。
    $accessKeyId = \Yii::$app->params['ossConfig']['accessKeyId'];
    $accessKeySecret = \Yii::$app->params['ossConfig']['accessKeySecret'];
    // Endpoint以杭州为例,其它Region请按实际情况填写。
    $endpoint = \Yii::$app->params['ossConfig']['endpoint'];
    // 存储空间名称
    $bucket = \Yii::$app->params['ossConfig']['bucket'];
    // 文件名称
    $object = $name;
    // <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt
    $filePath = $path;
    try{
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
        $ossClient->uploadFile($bucket, $object, $filePath);
	return true;
    } catch(OssException $e) {
        \Yii::error($e->getMessage(),__CLASS__ . __FUNCTION__);
        return false;
    }
}


/**
 * 获取文件的链接
 * @param $bucket
 * @param $object
 * @return string
 */
public static function getSignUrl($bucket, $object)
{
    $accessKeyId = \Yii::$app->params['ossConfig']['accessKeyId'];
    $accessKeySecret = \Yii::$app->params['ossConfig']['accessKeySecret'];
    // Endpoint以杭州为例,其它Region请按实际情况填写。
    $endpoint = \Yii::$app->params['ossConfig']['endpoint'];
    try{
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    $url = $ossClient->signUrl($bucket, $object,1000);
    return $url;
    } catch(OssException $e) {
        \Yii::error($e->getMessage(),__CLASS__ . __FUNCTION__);
        return '';
    }
}

5、实际调用的上传之后只需要把bucket和对应上传的文件的名称记录到本地的数据库中即可,表的结构可以设计为

CREATE TABLE `ubook_future_oss_file` (
  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `mapId` INT(11) DEFAULT NULL COMMENT 'mapId',
   `mapId` INT(11) DEFAULT NULL COMMENT 'mapType业务相关的类型',
  `bucket` VARCHAR(500) NOT NULL COMMENT '文件上传的名字',
  `fileName` VARCHAR(500) NOT NULL COMMENT '文件处理的名字',
  `isValid` TINYINT(1) NOT NULL DEFAULT '1' COMMENT ' 1、有效 0、无效',
  `cTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
  `uTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `deleted_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '删除时间戳,非空代表已逻辑删除',
  PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='oss上传文件记录'
 

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值