宜搭上传的图片存储在宜搭云存储中,默认情况下不可公开访问。如果您需要在函数计算中访问宜搭上传的图片,有以下两种方法:
开启公开访问:您可以在宜搭云存储中将需要访问的图片对象设置为公开访问,这样函数计算就可以通过 HTTP(S)协议访问该图片。具体操作可以参考宜搭云存储的文档。
使用宜搭云存储 SDK:如果无法公开访问图片,可以在函数计算中使用宜搭云存储的 SDK 调用存储桶接口获取图片内容,然后以二进制流形式返回给客户端。具体可以参考宜搭云存储的 SDK 文档。例如,在 Node.js 中使用宜搭云存储的 SDK 可以使用以下代码获取图片内容:
const cos = require('cos-nodejs-sdk-v5');
exports.handler = async function(event, context) {
const bucket = "your-bucket-name";
const key = "your-image-name.jpg";
const params = {
Bucket: bucket,
Key: key
};
try {
const { Body } = await cos.getObject(params).promise();
const base64 = Body.toString("base64");
return {
statusCode: 200,
headers: { "Content-Type": "image/jpeg" },
body: base64
};
} catch (err) {
console.error(err);
return {
statusCode: 500,
body: "Error getting object from COS."
};
}
};
需要注意的是,使用宜搭云存储 SDK 访问图片需要提供存储桶的身份验证信息,您需要在环境变量中配置 COS_SECRET_ID 和 COS_SECRET_KEY 参数。
宜搭免登上传的图片获取后有两个链接地址,是因为免登访问上传的图片地址是以 /o 开头的免登地址,之后登录钉钉账号后修改了匿名提交的数据,修改的部分图片链接就会变成以 /oss 开头的地址了,所以最后会出现两种不一样的图片链接。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。