腾讯云 对象存储之COS上传文件,视频

这篇博客介绍了如何在腾讯云COS中使用PHP获取临时密钥,并通过JavaScript进行文件上传。首先展示了一个PHP控制器的代码,用于获取临时密钥并计算签名。然后提供了JavaScript代码,演示了如何使用获取的签名进行Ajax PUT方式的文件上传。文章以实际代码为主,适合需要实现类似功能的开发者参考。
摘要由CSDN通过智能技术生成

闲话不唠 直接上代码   

使用 put方式的js_web上传方式  使用的基本是demo里的东西,在官方也有着地址 https://github.com/tencentyun/cos-js-sdk-v5/tree/master/demo  这里只要讲下配置

 

以下是php代码

<?php
namespace Home\Controller;
use Think\Controller;
//use com\unionpay\acp\sdk\AcpService;
class IndexController extends Controller
{
// 配置参数
public $config = array(
'Url' => 'https://sts.api.qcloud.com/v2/index.php',
'Domain' => 'sts.api.qcloud.com',
'Proxy' => '',
'SecretId' => 'AKIDV5Yw9GCwVs481jB7asywi2CB3mNrtIEy', // 固定密钥
'SecretKey' => 'gCXgeSFxUpywwmQs8C4lGZgdPzObeVBf', // 固定密钥
'Bucket' => 'dsy-1252917505',
'Region' => 'ap-beijing',
'AllowPrefix' => '*', // 这里改成允许的路径前缀,这里可以根据自己网站的用户登录态判断允许上传的目录,例子:* 或者 a/* 或者 a.jpg
);

public function __initialize($config){

// // 缓存临时密钥
// if (!isset($_SESSION['tempKeysCache'])) {
// $_SESSION['tempKeysCache'] = array(
// 'policyStr' => '',
// 'expiredTime' => 0
// );
// }
// $config = $this->config;
}

public function index()
{
$this->display();
}

public function getSign(){
// 获取前端过来的参数
$method = isset($_GET['method']) ? $_GET['method'] : 'get';
$pathname = isset($_GET['pathname']) ? $_GET['pathname'] : '/';

// 获取临时密钥,计算签名
$tempKeys = $this->getTempKeys();

if ($tempKeys && isset($tempKeys['credentials'])) {
$data = array(
'Authorization' => $this->getAuthorization($tempKeys, $method, $pathname),
'XCosSecurityToken' => $tempKeys['credentials']['sessionToken'],
);
} else {
$data = array('error'=> $tempKeys);
}

// 返回数据给前端
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: http://127.0.0.1'); // 这里修改允许跨域访问的网站
header('Access-Control-Allow-Headers: origin,accept,content-type');
echo json_encode($data);
}
// 获取临时密钥
public function getTempKeys() {

// global $config;
// 判断是否修改了 AllowPrefix
if ($this->config['AllowPrefix'] === '_ALLOW_DIR_/*') {
return array('error'=> '请修改 AllowPrefix 配置项,指定允许上传的路径前缀');
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在LayUI中使用腾讯云对象存储服务,需要完成以下步骤: 1. 首先,在腾讯云控制台中创建一个对象存储桶,并获取该桶的密钥信息,包括SecretId、SecretKey和Token。 2. 在LayUI中引入腾讯云对象存储的JavaScript SDK,可以通过以下方式引入: ```html <script src="https://cdn.jsdelivr.net/npm/cos-js-sdk-v5/dist/cos-js-sdk-v5.min.js"></script> ``` 3. 创建一个上传文件的方法,代码如下: ```javascript function uploadToCos(file) { // 创建COS SDK实例 var cos = new COS({ SecretId: 'yourSecretId', SecretKey: 'yourSecretKey', SecurityToken: 'yourToken' }); // 上传文件 cos.putObject({ Bucket: 'yourBucketName', Region: 'yourBucketRegion', Key: file.name, Body: file, onProgress: function(progressData) { console.log(JSON.stringify(progressData)); } }, function(err, data) { if (err) { console.log(err); } else { console.log(data); } }); } ``` 其中,`yourSecretId`、`yourSecretKey`和`yourToken`分别为腾讯云对象存储的密钥信息,`yourBucketName`为对象存储桶的名称,`yourBucketRegion`为对象存储桶所在的地域。 4. 在HTML中添加一个文件选择控件和上传按钮,代码如下: ```html <input type="file" id="file-selector"> <button id="upload-btn">上传</button> ``` 5. 给上传按钮添加点击事件,调用上传文件的方法,代码如下: ```javascript document.getElementById('upload-btn').addEventListener('click', function() { var file = document.getElementById('file-selector').files[0]; uploadToCos(file); }); ``` 通过以上步骤,就可以在LayUI中使用腾讯云对象存储服务上传文件了。需要注意的是,上传文件时需要确保文件大小不超过50MB,否则需要使用分块上传
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值