详情页标题前

阿里云对象存储OSSiOS图片处理-云淘科技

详情页1

图片处理是OSS提供的海量、安全、低成本、高可靠的图片处理服务。原始图片上传到OSS后,您可以通过简单的RESTful接口,在任何时间、任何地点、任何互联网设备上对图片进行处理。

使用方法

图片处理使用标准的HTTP GET请求。您可以在URL的QueryString中设置处理参数。

如果图片文件的访问权限为私有读写,必须通过授权才能进行访问。

  • 匿名访问
    OSSTask * task = [_client presignPublicURLWithBucketName:_publicBucketName
                                              withObjectKey:@"hasky.jpeg"
                                             withParameters:@{@"x-oss-process": @"image/resize,w_50"}];
  • 授权访问

    SDK中使用图片处理时,只需要在下载图片时调用request.setxOssProcess()方法设置处理参数。示例如下:

    OSSGetObjectRequest * request = [OSSGetObjectRequest new];
    // 填写图片所在Bucket的名称。
    request.bucketName = @"examplebucket";
    // 填写图片名称。如果图片不在Bucket根目录,需携带文件完整路径,例如exampledir/example.jpg。   
    request.objectKey = @"exampledir/example.jpg";
    // 图片处理。
    request.xOssProcess = @"image/resize,m_lfit,w_100,h_100";
    OSSTask * getTask = [client getObject:request];
    [getTask continueWithBlock:^id(OSSTask *task) {
        if (!task.error) {
            NSLog(@"download image success!");
            OSSGetObjectResult * getResult = task.result;
            NSLog(@"download image data: %@", getResult.dowloadedData);
        } else {
            NSLog(@"download object failed, error: %@" ,task.error);
        }
        return nil;
    }];
    // [getTask waitUntilFinished];
    // [request cancel];
  • SDK访问
    OSSGetObjectRequest * request = [OSSGetObjectRequest new];
    // 填写图片所在Bucket的名称。
    request.bucketName = @"examplebucket";
    // 填写图片名称。如果图片不在Bucket根目录,需携带文件完整路径,例如exampledir/example.jpg。   
    request.objectKey = @"exampledir/example.jpg";
    // 将图片缩放为固定宽高100 px。      
    request.xOssProcess = @"image/resize,m_lfit,w_100,h_100";   
    OSSTask * task = [ossClient getObject:request];

图片处理持久化

以下代码用于图片处理持久化:

OSSImagePersistRequest *request = [OSSImagePersistRequest new];
// 填写原图所在Bucket的名称。
request.fromBucket = @"srcbucket";
// 填写原图名称。如果图片不在Bucket根目录,需携带文件完整路径,例如exampledir/src.jpg。
request.fromObject = @"exampledir/src.jpg";
// 填写处理后图片存放的Bucket名称,该Bucket需与源Bucket在相同地域。
request.toBucket = @"destbucket";
// 填写处理后的图片名称.
request.toObject = @"exampledir/dest.jpg";
// 将图片按比例缩放至宽100 px后转存到指定Bucket。
request.action = @"image/resize,w_100";
//request.action = @"resize,w_100";

[[[ossClient imageActionPersist:request] continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {

    return nil;
}] waitUntilFinished];

生成带图片处理参数的文件签名URL

私有文件的访问URL带有签名。OSS不支持在带签名的URL后直接添加图片处理参数。如果您想要对私有文件进行图片处理,需要将图片处理参数加入到签名中。

以下代码用于生成带图片处理参数的文件签名URL:

// 填写图片所在Bucket的名称。
NSString *bucketName = @"examplebucket";
// 填写图片名称。如果图片不在Bucket根目录,需携带文件完整路径,例如exampledir/example.jpg。
NSString *objectKey = @"exampledir/example.jpg";
// 生成带签名的URL,并指定过期时间为1800s。
OSSTask *task = [_client presignConstrainURLWithBucketName:bucketName withObjectKey:objectKey withExpirationInterval:30 * 60 withParameters:@{@"x-oss-process": @"image/resize,w_50"}];
NSLog(@"url: %@", task.result);

图片处理工具

可视化图片处理工具 ImageStyleViewer ,可以直观的看到OSS图片处理的结果。

相关文档

关于图片处理支持的参数说明,请参见处理参数。

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

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

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

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

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

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

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

相关推荐

  • 阿里云日志服务SLS使用GetHistograms查询日志分布数量-云淘科技

    本文通过代码示例介绍如何使用GetHistograms接口查询日志在某时间区间中的分布数量。 前提条件 已创建RAM用户并完成授权。具体操作,请参见创建RAM用户并完成授权。 已配置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。具体操作,请参见配置环境变量。 重要 阿里云账号的…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云对象存储OSS403错误-云淘科技

    本文介绍OSS返回403错误的原因和解决方案。 AccessDenied The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint 问题原因:访…

    阿里云对象存储 2023年12月10日
  • 阿里云日志服务SLSRetryShipperTask-云淘科技

    调用RetryShipperTask接口重新执行失败的日志投递任务。 接口说明 请求语法中Host由Project名称和日志服务Endpoint构成,您需要在Host中指定Project。 已创建并获取AccessKey。更多信息,请参见访问密钥。 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或…

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云对象存储OSS使用Python SDK的SelectObject查询CSV和JSON文件-云淘科技

    本文介绍如何使用Python SDK的SelectObject查询CSV和JSON文件。 说明 本文示例由阿里云用户fralychen提供,仅供参考。 上传CSV或JSON格式文件 您可以根据业务需求,在OSS管理控制台将CSV或JSON格式文件上传到OSS bucket中。如何将文件上传至OSS bucket,请参见上传文件。 调用测试 通过put_obj…

    阿里云对象存储 2023年12月10日
  • 阿里云对象存储OSSPython跨域资源共享-云淘科技

    跨域资源共享CORS(Cross-Origin Resource Sharing)简称跨域访问,是HTML5提供的标准跨域解决方案,允许Web应用服务器进行跨域访问控制,确保跨域数据传输的安全性。 注意事项 本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Reg…

    阿里云对象存储 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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