阿里云oss上传的图片可以通过url直接访问,而不是直接下载图片

1 篇文章 0 订阅

阿里云oss上传的图片通过url可以直接访问,而不是直接下载图片
主要是设置下Content-Type 即OssClient::OSS_CONTENT_TYPE参数  类型设为对应的  比如image/jpg
 

$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$options = array(
    // 可以参看https://help.aliyun.com/document_detail/31859.html?spm=a2c4g.11186623.2.10.481e2b72ggLS4F#concept-lkf-swy-5db
    OssClient::OSS_CONTENT_TYPE => 'image/jpg',  // 简单的举例使用 要根据实际的图片类型 可以看下MimeTypes::getMimetype()里的
);
$ossClient->putObject($bucket, $object, $content, $options);

参考文档:https://www.alibabacloud.com/help/zh/doc-detail/32099.htm?spm=a2c63.p38356.b99.488.37297557BZcHz2

 


下面是简单的一个测试demo

 composer require aliyuncs/oss-sdk-php

 

<?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;

// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
$accessKeyId = "update me";
$accessKeySecret = "update me";
// Endpoint以杭州为例,其它Region请按实际情况填写。
$endpoint = "update me";
// 存储空间名称
$bucket= "update me";
// 文件名称
$object = "update me";

// 上传图片
try {
	$content = file_get_contents($object);
	$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
	$options = array(
		// 可以参看https://help.aliyun.com/document_detail/31859.html?spm=a2c4g.11186623.2.10.481e2b72ggLS4F#concept-lkf-swy-5db
	    OssClient::OSS_CONTENT_TYPE => 'image/jpg',  // 简单的举例使用 要根据实际的图片类型 
	);
	$ossClient->putObject($bucket, $object, $content, $options);
} catch (OssException $e) {
	print $e->getMessage();
}

// 获取图片临时访问链接
/*try {

	$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);

	// 生成一个带签名的URL,有效期是3600秒,可以直接使用浏览器访问。
	$timeout = 3600;

	// $options 可以参考https://www.alibabacloud.com/help/zh/doc-detail/47735.htm?spm=a2c63.p38356.b99.530.2b124f7cdGTn1g
	// $options = array(
	//     OssClient::OSS_FILE_DOWNLOAD => $download_file,
	//     OssClient::OSS_PROCESS => "image/resize,m_fixed,h_100,w_100", 
	// );

	$signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET", $options);

	print("rtmp url: \n" . $signedUrl);
} catch (OssException $e) {
	print $e->getMessage();
}*/

// 获取文件内容
/*try {
	$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
	$content = $ossClient->getObject($bucket, $object);
    print("object content: " . $content);
} catch (OssException $e) {
	print $e->getMessage();
}*/

// 删除文件
/*try {
	$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
	$ossClient->deleteObject($bucket, $object);
} catch (OssException $e) {
	print $e->getMessage();
}*/

// 列举文件
/*try {
	$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
	
	$listObjectInfo = $ossClient->listObjects($bucket);
	$objectList = $listObjectInfo->getObjectList();
	if (!empty($objectList)) {
		foreach ($objectList as $objectInfo) {
			print($objectInfo->getKey() . "\t" . $objectInfo->getSize() . "\t" . $objectInfo->getLastModified() . "\n");
			echo("<br>");
		}
	}
} catch (OssException $e) {
	print $e->getMessage();
}*/


// 列举存储空间
/*try{
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);

    $bucketListInfo = $ossClient->listBuckets();
} catch(OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}
$bucketList = $bucketListInfo->getBucketList();
foreach($bucketList as $bucket) {
    print($bucket->getLocation() . "\t" . $bucket->getName() . "\t" . $bucket->getCreatedate() . "\n");
}
*/

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值