OSS怎么用PHPSDK表单上传文件后得到下载地址,是公开的那种下载地址,求教,我是菜鸟
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要使用阿里云OSS PHP SDK上传文件并通过表单上传后获取公开的下载地址,请遵循以下步骤:
安装OSS PHP SDK: 确保您的环境满足要求(PHP 5.3及以上版本,已安装cURL扩展)。通过Composer安装是最推荐的方式:
composer require aliyuncs/oss-sdk-php
配置访问信息: 在代码中配置您的AccessKey ID、AccessKey Secret以及Endpoint。例如:
require 'vendor/autoload.php';
use OSS\OssClient;
$accessKeyId = "<yourAccessKeyId>";
$accessKeySecret = "<yourAccessKeySecret>";
$endpoint = "<yourEndpoint>";
$bucketName = "<yourBucketName>";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
上传文件: 使用putObject
方法上传本地文件到OSS,并指定存储路径。
$localFilePath = "<yourLocalFilePath>";
$objectKey = "<yourObjectNameInOSS>";
try {
$ossClient->putObject($bucketName, $objectKey, fopen($localFilePath, 'rb'));
} catch (OSS\Core\OssException $e) {
echo "Upload failed: ", $e->getMessage();
}
生成公开的下载链接: 要获取一个可以直接公开访问的下载链接,可以使用signUrl
方法生成一个带有过期时间的签名URL。
$expiration = strtotime('+1 hour'); // 链接有效期为1小时
try {
$signedUrl = $ossClient->signUrl($bucketName, $objectKey, $expiration, OssClient::OSS_HTTP_GET);
echo "Download URL: " . $signedUrl;
} catch (OSS\Core\OssException $e) {
echo "Sign URL failed: ", $e->getMessage();
}
这个$signedUrl
就是您可以直接分享给他人的公开下载链接。
确保在实际操作中替换<yourAccessKeyId>
、<yourAccessKeySecret>
、<yourEndpoint>
、<yourLocalFilePath>
、<yourBucketName>
和<yourObjectNameInOSS>
等占位符为您的实际信息。同时,注意控制好签名URL的有效时长以保证安全性。