标签: oss

oss相关的文章

  • php阿里云OSS上传文件示例(附源码)

    没什么好发的..发一下之前弄的php上传阿里云OSS例子吧!

    源码写的比较简单,关键部分我也都加入了注释。感兴趣的朋友可以直接学习/参考

    作用:

    阿里云OSS上传例子,免去登录阿里云在上传OSS文件..当自己图床??Emm网站静态托管?….有能力的可以自己扩写扩写适合自己业务。

    文件说明:

    index.html(前端,用了一些bootstrap3元素)up.php、up2.php(后端API,PHP)。

    当然如果你是作为自己的图床或静态托管.请务必别泄露自己的API(尽量为API增加限制比如时效性token或一次性token)避免被不怀好意的朋友盗用…设置流量告警 当然土豪请随意!

    最后!代码放出(全文件前端后端打包也一并奉上)

    PHP API 1(上传不修改源文件名版)

    <?php
    // * item: PHP 阿里云上传
    // * By: Lucky
    // * Blog: www.zai1.com
    // * 一起学习一起进步!
    require 'aliyun-oss-php-sdk/autoload.php'; // 阿里云SDK
    use OSS\OssClient;
    use OSS\Core\OssException;
    
    // 阿里云OSS配置
    $accessKeyId = 'LTAI5t9ACSTt8S3VcDveM5593';//如参数名
    $accessKeySecret = 'NqbJQFTiG82PYDuZDv7lhpmE2eT3Y71';//如参数名
    $endpoint = 'https://oss-cn-hangzhou.aliyuncs.com';//阿里云OSSendpoint 在OSS概览里可以看到 注意http和https 如果你是https 则需要填写https://oss-cn-你的OSS地域.aliyuncs.com
    $bucket = 'jsyunduan';//上传到那个OSS空间
    
    // 初始化OSS客户端
    try {
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    } catch (OssException $e) {
        die('OSS初始化失败:' . $e->getMessage());
    }
    
    // 检查文件上传是否成功
    if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
        $tmpName = $_FILES['file']['tmp_name'];
        $originalName = $_FILES['file']['name'];
    
        // 上传文件到OSS
        try {
            $ossClient->uploadFile($bucket, $originalName, $tmpName);
        } catch (OssException $e) {
            die('文件上传失败:' . $e->getMessage());
        }
    
        // 构建OSS文件访问链接
        $objectUrl = $ossClient->signUrl($bucket, $originalName, 3600);
    
        // 移除URL中的授权参数
        $objectUrl = preg_replace('/\?.*/', '', $objectUrl);//如果你上传后返回的URL携带参数可以去除,不去除:注释掉
        // 返回 JSON 响应
        $response = ['success' => true, 'link' => $objectUrl];//返回去除后的
    } else {
        // 返回 JSON 响应
        $response = ['success' => false];
    }
    
    header('Content-Type: application/json');
    echo json_encode($response);//返回给前端
    ?>

    PHP API 2(上传后为文件更名为MD5)

    image.png

    修改为MD5版本可以防止文件名重复导致的覆盖

    <?php
    // * item: PHP 阿里云上传
    // * By: Lucky
    // * Blog: www.zai1.com
    // * 一起学习一起进步!
    require 'aliyun-oss-php-sdk/autoload.php'; // 阿里云SDK
    use OSS\OssClient;
    use OSS\Core\OssException;
    
    // 阿里云OSS配置
    $accessKeyId = 'LTAI5t9ACSTt8S3VcDveM5599'; // 如参数名
    $accessKeySecret = 'NqbJQFTiG82PYDuZDv7lhpmE2eT3Yc6'; // 如参数名
    $endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'; // 阿里云OSS endpoint 同API 1 的解释、不多赘述。
    $bucket = 'jsyunduan'; // 上传到哪个OSS空间
    
    // 初始化OSS客户端
    try {
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
    } catch (OssException $e) {
        die('OSS初始化失败:' . $e->getMessage());
    }
    
    // 检查文件上传是否成功
    if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
        $tmpName = $_FILES['file']['tmp_name'];
    
        // 生成新的文件名,使用文件内容的MD5值作为新文件名
        $newFileName = md5_file($tmpName); // 获取文件内容的MD5值
        $fileExtension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION); // 获取文件扩展名
        $objectName = $newFileName . '.' . $fileExtension; // 拼接新文件名和文件扩展名
    
        // 上传文件到OSS并指定新文件名
        try {
            $ossClient->uploadFile($bucket, $objectName, $tmpName);
        } catch (OssException $e) {
            die('文件上传失败:' . $e->getMessage());
        }
    
        // 构建OSS文件访问链接
        $objectUrl = $ossClient->signUrl($bucket, $objectName, 3600);
    
        // 移除URL中的授权参数
        $objectUrl = preg_replace('/\?.*/', '', $objectUrl); // 如果你上传后返回的URL携带参数可以去除。
    
        // 返回 JSON 响应,包括新的文件名
        $response = ['success' => true, 'link' => $objectUrl, 'newFileName' => $objectName];
    } else {
        // 返回 JSON 响应
        $response = ['success' => false];
    }
    
    // 返回给前端
    header('Content-Type: application/json');
    echo json_encode($response);
    ?>
    [hidecontent type=”reply”]

    下载:https://t7g.lanzouj.com/iqDCc1e9aa4j 密码:cx0b

    不用我打包的SDK可以去阿里云Github 自己下载一份

    https://github.com/aliyun/aliyun-oss-php-sdk?spm=5176.8466032.tools.dphp-github.49ca1450y72vVP

    [/hidecontent]