详情页标题前

阿里云对象存储OSSPHP初始化-云淘科技

详情页1

OssClient是OSS的PHP客户端,用于管理存储空间和文件等OSS资源。

新建OssClient

说明

新建OSSClient时,需要指定Endpoint。关于Endpoint的更多信息,请参见访问域名和数据中心。

您可以通过以下多种方式新建OSSClient。

使用OSS域名新建OssClient

以下代码用于使用OSS域名新建OSSClient。

getMessage();
}
                    

使用自定义域名新建OssClient

以下代码用于使用自定义域名新建OSSClient。

说明

使用自定义域名时,无法使用listBuckets方法。

getMessage();
}
                    

使用STS新建OssClient

以下代码用于使用STS新建一个OssClient。

getMessage();
}
                    

使用EcsRamRole新建OssClient

在云服务器ECS上,您可以通过实例RAM角色的方式访问OSS。实例RAM角色允许您将一个角色关联到云服务器实例,在实例内部基于临时凭证STS访问OSS。临时凭证由系统自动生成和更新,应用程序可以使用指定的实例元数据URL获取临时凭证。

重要

使用EcsRamRole新建OssClient之前,您需要执行以下命令通过composer的方式安装SDK。

composer require alibabacloud/credentials

以下代码用于使用EcsRamRole新建OssClient。

wrapper = $wrapper;
    }
    public function getCredentials(){
        $ak = $this->wrapper->getAccessKeyId();
        $sk = $this->wrapper->getAccessKeySecret();
        $token = $this->wrapper->getSecurityToken();
        return new StaticCredentialsProvider($ak, $sk, $token);
    }
}
$ecsRamRole = new Credential(array(
    // 填写Credential类型,固定值为ecs_ram_role。
    'type'      => 'ecs_ram_role',
    // 填写角色名称。
    'role_name' => 'EcsRamRoleOssTest',
));
$providerWarpper = new AlibabaCloudCredentialsWrapper($ecsRamRole);
$provider = $providerWarpper->getCredentials();
$config = array(
    'provider' => $provider,
    // 以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其他Region请按实际情况填写。
    'endpoint'=> 'https://oss-cn-hangzhou.aliyuncs.com'
);
try {
    $ossClient = new OssClient($config);
} catch (OssException $e) {
    print $e->getMessage();
}

使用STSAssumeRole新建OssClient

重要

使用STSAssumeRole新建OssClient之前,您需要执行以下命令通过composer的方式安装SDK。

composer require alibabacloud/credentials

以下代码用于使用STSAssumeRole新建OssClient。

wrapper = $wrapper;
    }
    public function getCredentials(){
        $ak = $this->wrapper->getAccessKeyId();
        $sk = $this->wrapper->getAccessKeySecret();
        $token = $this->wrapper->getSecurityToken();
        return new StaticCredentialsProvider($ak, $sk, $token);
    }
}
$ramRoleArn  = new Credential(array(
    // 填写Credential类型,固定值为ram_role_arn。
    'type'      => 'ram_role_arn',
    // 运行本代码示例之前,请确保已使用RAM用户的访问密钥设置环境变量YOUR_ACCESS_KEY_ID和YOUR_ACCESS_KEY_SECRET。
    'access_key_id' => getenv('YOUR_ACCESS_KEY_ID'),
    'access_key_secret' => getenv('YOUR_ACCESS_KEY_SECRET'),
    // 填写角色的ARN信息,即需要扮演的角色ID。格式为acs:ram::$accountID:role/$roleName。
    'role_arn' => 'acs:ram::17464958********:role/ossststest',
    // 自定义角色会话名称,用于区分不同的令牌。
    'role_session_name' => 'yourRoleSessionName',
    // 自定义权限策略。
    'policy'            => '',
));
$providerWarpper = new AlibabaCloudCredentialsWrapper($ramRoleArn);
$provider = $providerWarpper->getCredentials();
$config = array(
    'provider' => $provider,
    // 以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其他Region请按实际情况填写。
    'endpoint'=> 'https://oss-cn-hangzhou.aliyuncs.com'
);
try {
    $ossClient = new OssClient($config);
    var_dump($ossClient);
} catch (OssException $e) {
    print $e->getMessage();
}

配置OssClient

您可以通过OssClient配置代理、连接超时、最大连接数等参数。

参数

描述

方法

timeout

设置Socket层传输数据的超时时间 ,默认值为5184000,单位为秒。

$ossClient->setTimeout(60);

connectTimeout

设置建立连接的超时时间,默认值为10,单位为秒。

$ossClient->setConnectTimeout(600);

maxRetries

请求失败后最大的重试次数。默认3次。

$ossClient->setMaxTries(5);

useSSL

是否开启SSL证书校验。取值如下:

  • true:开启SSL证书校验。

  • false(默认值):关闭SSL证书校验。

$ossClient->setUseSSL(true);

setConnectTimeout(300);
    // 设置失败请求重试次数。
    $ossClient->setMaxTries(5);    
    // 设置Socket层传输数据的超时时间。
    $ossClient->setTimeout(30);
    // 设置是否开启SSL证书校验。
    $ossClient->setUseSSL(true);
} catch (OssException $e) {
    print $e->getMessage();
}            

配置代理服务器

PHP 5.3及以上版本支持配置代理服务器。

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

use OSS\OssClient;
use OSS\Core\OssException;
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。 
$accessKeyId = getenv("OSS_ACCESS_KEY_ID"); 
$accessKeySecret = getenv("OSS_ACCESS_KEY_SECRET");
// 设置代理服务器地址,例如http://:@:。
$requestProxy = "yourRequestProxy";
// Endpoint以杭州为例,其它Region请按实际情况填写。
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";

try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint, false, $requestProxy);
} catch (OssException $e) {
    print $e->getMessage();
}
                    

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/157876.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云对象存储OSSJava追加上传-云淘科技

    追加上传是指通过AppendObject方法在已上传的追加类型文件(Appendable Object)末尾直接追加内容。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。 本文以从环…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSSRuby异常处理-云淘科技

    使用SDK时如果请求出错,会有相应的异常抛出,同时在log(默认为程序运行目录下oss_sdk.log)中也会记录详细的出错信息。OSS Ruby SDK中有ClientError和ServerError两种异常,这两种异常均为RuntimeError的子类。 ClientError ClientError指SDK内部出现的异常,例如参数设置错误、断点续传上…

    阿里云对象存储 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云ECS云服务器设置远程连接Windows实例安全组的案例-云淘科技

    本文主要介绍在不同的场景中,如何设置远程连接Windows实例的安全组。 背景信息 设置安全组规则,允许远程登录Windows实例分为以下两种场景: 场景一:专有网络(VPC)环境允许远程登录到Windows实例 场景二:经典网络环境允许远程登录到Windows实例 允许公网远程登录到Windows实例 允许内网远程登录到Windows实例 允许内网其他账号…

    阿里云服务器 2023年12月9日
  • 阿里云对象存储OSSNode.js上传文件概述-云淘科技

    在对象存储OSS中,操作的基本数据单元是文件(Object)。OSS Node.js SDK提供了丰富的文件上传方式。 OSS Node.js SDK文件上传方式如下: Node.js上传本地文件:最大不能超过5 GB。 Node.js上传本地内存:最大不能超过5 GB。 Node.js流式上传:最大不能超过5 GB。 Node.js分片上传:当文件较大时,…

    阿里云对象存储 2023年12月10日
  • 阿里云ECS云服务器使用Enclave构建机密计算环境-云淘科技

    本文介绍如何使用阿里云虚拟化Enclave创建一个可信的隔离空间,从而保护您的应用程序和数据的安全。 背景信息 数据一般分为三种形态:静态数据、传输中的数据以及使用中的数据。前两者可以通过加密等方式来保障数据安全;而使用中的数据的安全性保障十分困难,目前一般使用机密计算(Confidential Computing)来保护使用中的数据的安全性。 阿里云虚拟化…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。