开发者社区 问答 正文

签名缩略图怎么在APP端使用

求助


有大兄弟大妹纸在APP端签名使用过OSS生成的缩略图吗


(打开APP端页面,默认显示缩略图,点击缩略图,才临时加载原图)


【OSS的开发文档之 授权访问】
help.aliyun.com/document_detail/32049.html?spm=5176.product31815.6.702.Hv1nSz


但还是不明白怎么使用
因为
我这边拉取 不到缩略图的路径
我这边是本地签名生成的路径
和OSS生成的加后缀的路径是不一样的


麻烦android  / ios的大兄弟大妹纸了

展开
收起
昵称呢 2017-10-25 09:56:12 2518 分享 版权
阿里云 AI 助理回答

在阿里云OSS中生成缩略图并实现在APP端的签名访问,主要涉及以下几个步骤:

1. 使用OSS图片处理服务生成缩略图

阿里云OSS提供了图片处理服务(Image Service),允许你直接通过URL参数来对存储在OSS中的图片进行处理,比如生成缩略图。具体操作如下:

  • 原图URL: 假设你的原图存储在OSS上的路径为http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/your-image.jpg
  • 缩略图URL: 你可以通过在原图URL后面添加处理参数来生成缩略图。例如,要生成一个宽度为100像素的缩略图,URL可以修改为:
    http://your-bucket-name.oss-cn-hangzhou.aliyuncs.com/your-image.jpg?x-oss-process=image/resize,w_100
    

更多图片处理参数可以参考OSS图片处理文档。

2. 签名访问

由于直接使用上述URL可能会暴露资源,特别是在需要权限控制的情况下,你需要对URL进行签名以确保安全访问。这通常涉及到计算签名和添加到URL上。对于Android和iOS客户端,你可以使用阿里云提供的SDK来实现这一过程。

Android端

在Android应用中,你可以使用阿里云OSS SDK来生成带有签名的URL。首先,确保你已经正确配置了OSS SDK,并获取了OSSClient实例。然后,使用以下代码生成签名URL:

String objectName = "your-image.jpg";
long expireTime = 3600; // URL的有效期,单位秒
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectName, HttpMethod.GET);
request.setExpiration(new Date(System.currentTimeMillis() + expireTime * 1000));
URL signedUrl = ossClient.generatePresignedUrl(request);

iOS端

在iOS应用中,同样使用阿里云OSS SDK(Objective-C版本)来生成签名URL。示例代码如下:

NSString *objectKey = @"your-image.jpg";
NSTimeInterval expiration = 3600; // URL有效期,单位秒
AOSPresignRequest *presignRequest = [[AOSPresignRequest alloc] initWithBucket:@"your-bucket-name" key:objectKey];
[presignRequest setExpires:(uint64_t)(expiration)];
NSError *error;
NSURL *signedURL = [ossClient presignedURL:presignRequest error:&error];

3. 展示缩略图与加载原图

  • 在APP端页面初始化时,先展示通过签名URL获取的缩略图。
  • 当用户点击缩略图时,再根据需要临时加载原图或更高分辨率的图片。如果原图也需要权限控制,记得同样为其生成带签名的URL。

确保在实际应用中,根据业务需求调整URL的有效期、选择合适的图片处理参数,并正确集成OSS SDK进行签名处理。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答