跳转到内容

通过cookie验证保护图片和视频

控制谁访问您的图像和视频, 和时间,可以成为业务安全工作流程的重要关注贝斯特登录入口官网下载资源可能只需要用户或员工访问,或可能需要确保原创资源安全,只有变换版资源交付,例如带水印或标识显示

贝斯特登录入口官网下载云式自傲通过动态URL提供各种变换,使用即时变换提供公共资源大有裨益贝斯特登录入口官网下载运出资源的灵活性在某些情况下可能过于宽松,因为光是改变或删除动态云性URL参数可即时提供新图像可能导致用户调优URL访问原版图像,例如查看图像添加水印减裁剪参数ixelate表情效果隐藏人的身份等

云形提供箱外支持贝斯特登录入口官网下载上传资源认证.贝斯特登录入口官网下载默认情况下,这些认证资源只能用签名交付URL访问:动态URL带签名,在资源交付前必须验证签名基于URL中所有动态参数,因此修改URL中的任何参数或值将使签名失效,并拒绝访问请求资源

单行代码实例上传图像认证

:authenticated)","codeSnippet":"Cloudinary::Uploader.upload(\"bag.jpg\", \n :type => :authenticated)"},{"sdkId":"php","framework":"php","language":"php","displayName":"PHP","packageName":"cloudinary_php","packageVersion":"1.x","packageStatus":"legacy","rawCodeSnippet":"\\Cloudinary\\Uploader::upload(\"bag.jpg\", \n array(\"type\" => \"authenticated\"));","codeSnippet":"\\Cloudinary\\Uploader::upload(\"bag.jpg\", \n array(\"type\" => \"authenticated\"));"},{"sdkId":"python","framework":"python","language":"python","displayName":"Python","packageName":"cloudinary","packageVersion":"1.x","packageStatus":"","rawCodeSnippet":"cloudinary.uploader.upload(\"bag.jpg\", \n type = \"authenticated\")","codeSnippet":"cloudinary.uploader.upload(\"bag.jpg\", \n type = \"authenticated\")"},{"sdkId":"nodejs","framework":"nodejs","language":"javascript","displayName":"Node.js","packageName":"cloudinary","packageVersion":"1.x","packageStatus":"","rawCodeSnippet":"cloudinary.v2.uploader.upload(\"bag.jpg\", \n { type: \"authenticated\" }, \n function(error, result) {console.log(result)!代码片段:cloverary.v2.loader.sdklistications:Clused-urlss 加载代码示例

单行代码提供认证图像实例注意生成URL中的签名组件(使用SDKs时自动添加):

<\/Image>","codeSnippet":" \n\t \n<\/Image>","status":0,"statusText":"Ok","displayName":"React","packageName":"cloudinary-react","packageStatus":"","packageVersion":"1.x"},{"sdkId":"vue_2","framework":"vue_2","language":"vue","rawCodeSnippet":"new CloudinaryImage(\"bag.jpg\")\n .resize(scale().width(300))\n .setSignature(\"8_TXHRoM\")\n .setDeliveryType(\"authenticated\");","codeSnippet":"new CloudinaryImage(\"bag.jpg\")\n .resize(scale().width(300))\n .setSignature(\"8_TXHRoM\")\n .setDeliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"Vue.js","packageName":"@cloudinary\/vue","packageStatus":"","packageVersion":"1.x"},{"sdkId":"vue","framework":"vue","language":"vue","rawCodeSnippet":" <\/cld-image>","codeSnippet":" \n\t \n<\/cld-image>","status":0,"statusText":"Ok","displayName":"Vue.js","packageName":"cloudinary-vue","packageStatus":"legacy","packageVersion":"1.x"},{"sdkId":"angular_2","framework":"angular_2","language":"angular","rawCodeSnippet":"new CloudinaryImage(\"bag.jpg\")\n .resize(scale().width(300))\n .setSignature(\"8_TXHRoM\")\n .setDeliveryType(\"authenticated\");","codeSnippet":"new CloudinaryImage(\"bag.jpg\")\n .resize(scale().width(300))\n .setSignature(\"8_TXHRoM\")\n .setDeliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"Angular","packageName":"@cloudinary\/ng","packageStatus":"","packageVersion":"1.x"},{"sdkId":"angular","framework":"angular","language":"angular","rawCodeSnippet":" <\/cl-transformation> <\/cl-image>","codeSnippet":" \n\t \n\t<\/cl-transformation>\n<\/cl-image>","status":0,"statusText":"Ok","displayName":"Angular","packageName":"@cloudinary\/angular-5.x","packageStatus":"legacy","packageVersion":"1.x"},{"sdkId":"js_2","framework":"js_2","language":"js","rawCodeSnippet":"new CloudinaryImage(\"bag.jpg\")\n .resize(scale().width(300))\n .setSignature(\"8_TXHRoM\")\n .setDeliveryType(\"authenticated\");","codeSnippet":"new CloudinaryImage(\"bag.jpg\")\n .resize(scale().width(300))\n .setSignature(\"8_TXHRoM\")\n .setDeliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"JS","packageName":"@cloudinary\/url-gen","packageStatus":"","packageVersion":"1.x"},{"sdkId":"js","framework":"js","language":"js","rawCodeSnippet":"cloudinary.imageTag('bag.jpg', {width: 300, crop: \"scale\", signUrl: true, type: \"authenticated\"}).toHtml();","codeSnippet":"cloudinary.imageTag('bag.jpg', {width: 300, crop: \"scale\", signUrl: true, type: \"authenticated\"}).toHtml();","status":0,"statusText":"Ok","displayName":"JS","packageName":"cloudinary-core","packageStatus":"legacy","packageVersion":"2.x"},{"sdkId":"python","framework":"python","language":"python","rawCodeSnippet":"CloudinaryImage(\"bag.jpg\").image(width=300, crop=\"scale\", sign_url=True, type=\"authenticated\")","codeSnippet":"CloudinaryImage(\"bag.jpg\").image(width=300, crop=\"scale\", sign_url=True, type=\"authenticated\")","status":0,"statusText":"Ok","displayName":"Python","packageName":"cloudinary","packageStatus":"","packageVersion":"1.x"},{"sdkId":"php_2","framework":"php_2","language":"php","rawCodeSnippet":"(new ImageTag('bag.jpg'))\n\t->resize(Resize::scale()->width(300))\n\t->sign()\n\t->deliveryType(\"authenticated\");","codeSnippet":"(new ImageTag('bag.jpg'))\n\t->resize(Resize::scale()->width(300))\n\t->sign()\n\t->deliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"PHP","packageName":"cloudinary_php","packageStatus":"","packageVersion":"2.x"},{"sdkId":"php","framework":"php","language":"php","rawCodeSnippet":"cl_image_tag(\"bag.jpg\", array(\"width\"=>300, \"crop\"=>\"scale\", \"sign_url\"=>true, \"type\"=>\"authenticated\"))","codeSnippet":"cl_image_tag(\"bag.jpg\", array(\"width\"=>300, \"crop\"=>\"scale\", \"sign_url\"=>true, \"type\"=>\"authenticated\"))","status":0,"statusText":"Ok","displayName":"PHP","packageName":"cloudinary_php","packageStatus":"legacy","packageVersion":"1.x"},{"sdkId":"java","framework":"java","language":"java","rawCodeSnippet":"cloudinary.url().transformation(new Transformation().width(300).crop(\"scale\")).signed(true).type(\"authenticated\").imageTag(\"bag.jpg\");","codeSnippet":"cloudinary.url().transformation(new Transformation().width(300).crop(\"scale\")).signed(true).type(\"authenticated\").imageTag(\"bag.jpg\");","status":0,"statusText":"Ok","displayName":"Java","packageName":"cloudinary","packageStatus":"","packageVersion":"1.x"},{"sdkId":"ruby","framework":"ruby","language":"ruby","rawCodeSnippet":"cl_image_tag(\"bag.jpg\", :width=>300, :crop=>\"scale\", :sign_url=>true, :type=>\"authenticated\")","codeSnippet":"cl_image_tag(\"bag.jpg\", :width=>300, :crop=>\"scale\", :sign_url=>true, :type=>\"authenticated\")","status":0,"statusText":"Ok","displayName":"Ruby","packageName":"cloudinary","packageStatus":"","packageVersion":"1.x"},{"sdkId":"csharp","framework":"csharp","language":"csharp","rawCodeSnippet":"cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(300).Crop(\"scale\")).Signed(true).Action(\"authenticated\").BuildImageTag(\"bag.jpg\")","codeSnippet":"cloudinary.Api.UrlImgUp.Transform(new Transformation().Width(300).Crop(\"scale\")).Signed(true).Action(\"authenticated\").BuildImageTag(\"bag.jpg\")","status":0,"statusText":"Ok","displayName":".NET","packageName":"CloudinaryDotNet","packageStatus":"","packageVersion":"1.x"},{"sdkId":"dart","framework":"dart","language":"dart","rawCodeSnippet":"cloudinary.image('bag.jpg').transformation(Transformation()\n\t.resize(Resize.scale().width(300))\n\t.setSignature(\"8_TXHRoM\")\n\t.setDeliveryType(\"authenticated\"));","codeSnippet":"cloudinary.image('bag.jpg').transformation(Transformation()\n\t.resize(Resize.scale().width(300))\n\t.setSignature(\"8_TXHRoM\")\n\t.setDeliveryType(\"authenticated\"));","status":0,"statusText":"Ok","displayName":"Dart","packageName":"cloudinary_dart","packageStatus":"","packageVersion":"0.x"},{"sdkId":"swift","framework":"swift","language":"swift","rawCodeSnippet":"imageView.cldSetImage(cloudinary.createUrl().setType( \"authenticated\").setTransformation(CLDTransformation().setWidth(300).setCrop(\"scale\")).generate(\"bag.jpg\", signUrl: true)!, cloudinary: cloudinary)","codeSnippet":"imageView.cldSetImage(cloudinary.createUrl().setType( \"authenticated\").setTransformation(CLDTransformation().setWidth(300).setCrop(\"scale\")).generate(\"bag.jpg\", signUrl: true)!, cloudinary: cloudinary)","status":0,"statusText":"Ok","displayName":"iOS","packageName":"cloudinary","packageStatus":"","packageVersion":"3.x"},{"sdkId":"android","framework":"android","language":"android","rawCodeSnippet":"MediaManager.get().url().transformation(new Transformation().width(300).crop(\"scale\")).signed(true).type(\"authenticated\").generate(\"bag.jpg\");","codeSnippet":"MediaManager.get().url().transformation(new Transformation().width(300).crop(\"scale\")).signed(true).type(\"authenticated\").generate(\"bag.jpg\");","status":0,"statusText":"Ok","displayName":"Android","packageName":"cloudinary-android","packageStatus":"","packageVersion":"1.x"},{"sdkId":"flutter","framework":"flutter","language":"flutter","rawCodeSnippet":"cloudinary.image('bag.jpg').transformation(Transformation()\n\t.resize(Resize.scale().width(300))\n\t.setSignature(\"8_TXHRoM\")\n\t.setDeliveryType(\"authenticated\"));","codeSnippet":"cloudinary.image('bag.jpg').transformation(Transformation()\n\t.resize(Resize.scale().width(300))\n\t.setSignature(\"8_TXHRoM\")\n\t.setDeliveryType(\"authenticated\"));","status":0,"statusText":"Ok","displayName":"Flutter","packageName":"cloudinary_flutter","packageStatus":"","packageVersion":"0.x"},{"sdkId":"kotlin","framework":"kotlin","language":"kotlin","rawCodeSnippet":"cloudinary.image {\n\tpublicId(\"bag.jpg\")\n\t resize(Resize.scale() { width(300) })\n\t signature()\n\t deliveryType(\"authenticated\") \n}.generate()","codeSnippet":"cloudinary.image {\n\tpublicId(\"bag.jpg\")\n\t resize(Resize.scale() { width(300) })\n\t signature()\n\t deliveryType(\"authenticated\") \n}.generate()","status":0,"statusText":"Ok","displayName":"Kotlin","packageName":"kotlin-url-gen","packageStatus":"","packageVersion":"1.x"},{"sdkId":"jquery","framework":"jquery","language":"jquery","rawCodeSnippet":"$.cloudinary.image(\"bag.jpg\", {width: 300, crop: \"scale\", type: \"authenticated\"})","codeSnippet":"$.cloudinary.image(\"bag.jpg\", {width: 300, crop: \"scale\", type: \"authenticated\"})","status":0,"statusText":"Ok","displayName":"jQuery","packageName":"cloudinary-jquery","packageStatus":"","packageVersion":"2.x"},{"sdkId":"react_native","framework":"react_native","language":"react_native","rawCodeSnippet":"new CloudinaryImage(\"bag.jpg\")\n .resize(scale().width(300))\n .setSignature(\"8_TXHRoM\")\n .setDeliveryType(\"authenticated\");","codeSnippet":"new CloudinaryImage(\"bag.jpg\")\n .resize(scale().width(300))\n .setSignature(\"8_TXHRoM\")\n .setDeliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"React Native","packageName":"cloudinary-react-native","packageStatus":"","packageVersion":"0.x"}]" parsed-url="{"url":"https:\/\/res.www.aaaalireno.com\/demo\/image\/authenticated\/s--8_TXHRoM--\/c_scale,w_300\/bag.jpg","cloud_name":"demo","host":"res.www.aaaalireno.com","type":"authenticated","resource_type":"image","transformation":[{"crop_mode":"scale","width":"300"}],"transformation_string":"c_scale,w_300","url_suffix":"","version":"","secure":true,"public_id":"bag.jpg","extension":"jpg","format":"jpg","format_code":true,"signature":"8_TXHRoM","private_cdn":false,"result_asset_type":"image"}" with-url="true" > 加载代码示例

贝斯特登录入口官网下载上面描述签名交付法在许多情况下可能满足您的认证需求,但如果你想限制访问资源到特定IP地址或特定用户或有限时间直到发布?支持更高级认证需求Cloudinary添加新认证功能

  • 令牌基础认证提供IP约束和限时URL
  • Cookie基础认证限制用户使用有效cookie

需要控制设备访问图像时,基本签名URL解决方案可能不够

假设有尚未发布产品图片或用户上传不应公开获取图像(例如签名合同)。在这种情况下,你只允许员工访问,或实际上只限从网络内启动请求(静态IP地址)。令牌验证即从此实现

验证令牌作为查询参数集添加到图像交付URL中,并用于验证后提交图像生成基于令牌验证URL简单到添加sign_url参数集真实性)和auth-tokensdk资源交付法中的参数上头auth-token参数包括细节限制访问, 在我们示例中包括允许值ip语言并加密密钥从云中接收

举例说,只有请求IP地址为22.33.22.11时才能交付Contract123图像:

true, :auth_token => { \n :key => \"MyKey\", :ip => \"22.33.22.11\"}, :type => \"authenticated\")","codeSnippet":"cl_image_tag(\"contract123.jpg\", :sign_url => true, :auth_token => { \n :key => \"MyKey\", :ip => \"22.33.22.11\"}, :type => \"authenticated\")"},{"sdkId":"php","framework":"php","language":"php","displayName":"PHP","packageName":"cloudinary_php","packageVersion":"1.x","packageStatus":"legacy","rawCodeSnippet":"cl_image_tag(\"contract123.jpg\", array(\"auth_token\" => array(\n \"key\" => \"MyKey\", \"ip\" => \"22.33.22.11\"), \"type\" => \"authenticated\", \n \"sign_url\" => true));","codeSnippet":"cl_image_tag(\"contract123.jpg\", array(\"auth_token\" => array(\n \"key\" => \"MyKey\", \"ip\" => \"22.33.22.11\"), \"type\" => \"authenticated\", \n \"sign_url\" => true));"},{"sdkId":"python","framework":"python","language":"python","displayName":"Python","packageName":"cloudinary","packageVersion":"1.x","packageStatus":"","rawCodeSnippet":"cloudinary.CloudinaryImage(\"contract123.jpg\").image(\n type = \"authenticated\", auth_token = dict(ip = \"22.33.22.11\", \n key = \"MyKey\"), sign_url = true)","codeSnippet":"cloudinary.CloudinaryImage(\"contract123.jpg\").image(\n type = \"authenticated\", auth_token = dict(ip = \"22.33.22.11\", \n key = \"MyKey\"), sign_url = true)"},{"sdkId":"nodejs","framework":"nodejs","language":"javascript","displayName":"Node.js","packageName":"cloudinary","packageVersion":"1.x","packageStatus":"","rawCodeSnippet":"cloudinary.image(\"contract123.jpg\", { type: \"authenticated\", \n auth_token: {key: \"MyKey\", ip: \"22.33.22.11\" }, sign_url: true })","codeSnippet":"cloudinary.image(\"contract123.jpg\", { type: \"authenticated\", \n auth_token: {key: \"MyKey\", ip: \"22.33.22.11\" }, sign_url: true })"},{"sdkId":"java","framework":"java","language":"java","displayName":"Java","packageName":"cloudinary","packageVersion":"1.x","packageStatus":"","rawCodeSnippet":"cloudinary.url().transformation(new Transformation().\n type(\"authenticated\").authToken(new AuthToken(\"MyKey\").\n ip(\"22.33.22.11\").signed(true)).imageTag(\"contract123.jpg\");","codeSnippet":"cloudinary.url().transformation(new Transformation().\n type(\"authenticated\").authToken(new AuthToken(\"MyKey\").\n ip(\"22.33.22.11\").signed(true)).imageTag(\"contract123.jpg\");"}]" parsed-url="[]" with-url="false" > 加载代码示例

贝斯特登录入口官网下载万一你还需要精密控制设备访问特定资源或资源可用时, 并控制特定人或存取者呢?

举个例子,让我们假设你正在开发网站 内有一个成员专用段 注册用户注册用户可访问图像和视频,允许访问时间最长为1小时,同时确保注册用户无法仅与非成员分享图像URL在这种情况下,您会想使用Cookie基础认证特征扩展符号验证功能,使你能够限制仅向带有效cookie用户发送认证图像cookie有效性可匹配用户会话过期并可以包括访问控制列表配置cookie可使用URL路径(例如/image/a和基于令牌认证一样,您也可以通过IP地址和/或时间限制cookie

上例例中,当用户登录网站成员段时,您会为用户生成cookie,允许用户查看您的“认证图像”。但如果谁没有cookie尝试打开同一张图像URL

实例创建60分钟有效cookie允许访问所有经认证图像并签名MY_KEY

        mostoptions={密钥=>My_Key..持续时间=>3600..acl=>"/image/authenticated/*"} cookieToken = Cloudinary::Utils.generate_auth_token(tokenOptions)代码语言JavaScript高山市javascript)

基于cookie验证的灵活性也为登录系统的每一用户定制访问方式提供工具。贝斯特登录入口官网下载Cookie访问控制列表路径使用动态URL提供资源时,可以包括定制变换细节与贵公司特有关系,例如,将公司标识加为图像覆盖值(例如/image/acificate/l_logo.png/*)。表示cookie只能用于验证URL,包括给定变换

举个例子,您可以在cookie中设置ACL权限所有图像,宽度700像素和右上角公司标识

:acl=>"/image/authenticated/w_700/l_logo,g_north_east/*"代码语言JavaScript高山市javascript)

简化努力,您可以组合组合组合变换命名变换并简单添加命名变换ACL举个例子,向ACL添加命名变换名“授权”,即对上文提到的变换设置“授权”w_700/l_logo,g_north_east)

:acl=>"/image/authenticated/t_authorized/*"代码语言JavaScript高山市javascript)

发送甚至认证图像的潜在缺陷之一是接收者很容易将图像保存到计算机并有可能传递给任何其他人贝斯特登录入口官网下载这可能特别成问题,如果贵公司需要特定人员查看您的资源,但资源也因各种原因需要保密,例如预发布产品图片等。帮助防范任何漏洞,你可提供寻址方式查找图像发源

假设John Doe是产品设计管理器需要访问所有图像 准备计划产品发布举个例子允许认证任何图像,只要将个人名添加成半透明文本叠加,并在整个图像中重复使用

:acl=>"/image/authenticated/a_-25,o_6,l_text:Arial_25_bold:"+当前用户+"/fl_tiled.layer_apply/*"代码语言JavaScript高山市javascript)

下图 URL将认证为 John Doe, 但不认证为任何其他用户 :

网站数 ://res.www.aaaalireno.com/demo/image/authenticated/a_-25,l_text:Arial_25_bold:John%20Doe,o_6/fl_tiled.layer_apply/w_800/cookies.jpg代码语言JavaScript高山市javascript)

认证叠加

<\/Image>","codeSnippet":" \n\t \n\t \n<\/Image>","status":0,"statusText":"Ok","displayName":"React","packageName":"cloudinary-react","packageStatus":"","packageVersion":"1.x"},{"sdkId":"vue_2","framework":"vue_2","language":"vue","rawCodeSnippet":"new CloudinaryImage(\"cookies.jpg\")\n .overlay(\n source(\n text(\n \"John Doe\",\n new TextStyle(\"Arial\", 25).fontWeight(\"bold\")\n ).transformation(\n new Transformation().rotate(byAngle(-25)).adjust(opacity(6))\n )\n ).position(new Position().tiled())\n )\n .setSignature(\"GOOo0vEj\")\n .setDeliveryType(\"authenticated\");","codeSnippet":"new CloudinaryImage(\"cookies.jpg\")\n .overlay(\n source(\n text(\n \"John Doe\",\n new TextStyle(\"Arial\", 25).fontWeight(\"bold\")\n ).transformation(\n new Transformation().rotate(byAngle(-25)).adjust(opacity(6))\n )\n ).position(new Position().tiled())\n )\n .setSignature(\"GOOo0vEj\")\n .setDeliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"Vue.js","packageName":"@cloudinary\/vue","packageStatus":"","packageVersion":"1.x"},{"sdkId":"vue","framework":"vue","language":"vue","rawCodeSnippet":" <\/cld-image>","codeSnippet":" \n\t \n\t \n<\/cld-image>","status":0,"statusText":"Ok","displayName":"Vue.js","packageName":"cloudinary-vue","packageStatus":"legacy","packageVersion":"1.x"},{"sdkId":"angular_2","framework":"angular_2","language":"angular","rawCodeSnippet":"new CloudinaryImage(\"cookies.jpg\")\n .overlay(\n source(\n text(\n \"John Doe\",\n new TextStyle(\"Arial\", 25).fontWeight(\"bold\")\n ).transformation(\n new Transformation().rotate(byAngle(-25)).adjust(opacity(6))\n )\n ).position(new Position().tiled())\n )\n .setSignature(\"GOOo0vEj\")\n .setDeliveryType(\"authenticated\");","codeSnippet":"new CloudinaryImage(\"cookies.jpg\")\n .overlay(\n source(\n text(\n \"John Doe\",\n new TextStyle(\"Arial\", 25).fontWeight(\"bold\")\n ).transformation(\n new Transformation().rotate(byAngle(-25)).adjust(opacity(6))\n )\n ).position(new Position().tiled())\n )\n .setSignature(\"GOOo0vEj\")\n .setDeliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"Angular","packageName":"@cloudinary\/ng","packageStatus":"","packageVersion":"1.x"},{"sdkId":"angular","framework":"angular","language":"angular","rawCodeSnippet":" <\/cl-transformation> <\/cl-transformation> <\/cl-image>","codeSnippet":" \n\t \n\t<\/cl-transformation>\n\t \n\t<\/cl-transformation>\n<\/cl-image>","status":0,"statusText":"Ok","displayName":"Angular","packageName":"@cloudinary\/angular-5.x","packageStatus":"legacy","packageVersion":"1.x"},{"sdkId":"js_2","framework":"js_2","language":"js","rawCodeSnippet":"new CloudinaryImage(\"cookies.jpg\")\n .overlay(\n source(\n text(\n \"John Doe\",\n new TextStyle(\"Arial\", 25).fontWeight(\"bold\")\n ).transformation(\n new Transformation().rotate(byAngle(-25)).adjust(opacity(6))\n )\n ).position(new Position().tiled())\n )\n .setSignature(\"GOOo0vEj\")\n .setDeliveryType(\"authenticated\");","codeSnippet":"new CloudinaryImage(\"cookies.jpg\")\n .overlay(\n source(\n text(\n \"John Doe\",\n new TextStyle(\"Arial\", 25).fontWeight(\"bold\")\n ).transformation(\n new Transformation().rotate(byAngle(-25)).adjust(opacity(6))\n )\n ).position(new Position().tiled())\n )\n .setSignature(\"GOOo0vEj\")\n .setDeliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"JS","packageName":"@cloudinary\/url-gen","packageStatus":"","packageVersion":"1.x"},{"sdkId":"js","framework":"js","language":"js","rawCodeSnippet":"cloudinary.imageTag('cookies.jpg', {signUrl: true, type: \"authenticated\", transformation: [ {angle: -25, overlay: new cloudinary.TextLayer().fontFamily(\"Arial\").fontSize(25).fontWeight(\"bold\").text(\"John%20Doe\"), opacity: 6}, {flags: [\"tiled\", \"layer_apply\"]} ]}).toHtml();","codeSnippet":"cloudinary.imageTag('cookies.jpg', {signUrl: true, type: \"authenticated\", transformation: [\n {angle: -25, overlay: new cloudinary.TextLayer().fontFamily(\"Arial\").fontSize(25).fontWeight(\"bold\").text(\"John%20Doe\"), opacity: 6},\n {flags: [\"tiled\", \"layer_apply\"]}\n ]}).toHtml();","status":0,"statusText":"Ok","displayName":"JS","packageName":"cloudinary-core","packageStatus":"legacy","packageVersion":"2.x"},{"sdkId":"python","framework":"python","language":"python","rawCodeSnippet":"CloudinaryImage(\"cookies.jpg\").image(sign_url=True, type=\"authenticated\", transformation=[ {'angle': -25, 'overlay': {'font_family': \"Arial\", 'font_size': 25, 'font_weight': \"bold\", 'text': \"John%20Doe\"}, 'opacity': 6}, {'flags': [\"tiled\", \"layer_apply\"]} ])","codeSnippet":"CloudinaryImage(\"cookies.jpg\").image(sign_url=True, type=\"authenticated\", transformation=[\n {'angle': -25, 'overlay': {'font_family': \"Arial\", 'font_size': 25, 'font_weight': \"bold\", 'text': \"John%20Doe\"}, 'opacity': 6},\n {'flags': [\"tiled\", \"layer_apply\"]}\n ])","status":0,"statusText":"Ok","displayName":"Python","packageName":"cloudinary","packageStatus":"","packageVersion":"1.x"},{"sdkId":"php_2","framework":"php_2","language":"php","rawCodeSnippet":"(new ImageTag('cookies.jpg'))\n\t->overlay(Overlay::source(\n\tSource::text(\"John Doe\",(new TextStyle(\"Arial\",25))\n\t->fontWeight(\n\tFontWeight::bold())\n\t)\n\t->transformation((new Transformation())\n\t->rotate(Rotate::byAngle(-25))\n\t->adjust(Adjust::opacity(6)))\n\t)\n\t->position((new Position())\n\t->tiled()\n\t)\n\t)\n\t->sign()\n\t->deliveryType(\"authenticated\");","codeSnippet":"(new ImageTag('cookies.jpg'))\n\t->overlay(Overlay::source(\n\tSource::text(\"John Doe\",(new TextStyle(\"Arial\",25))\n\t->fontWeight(\n\tFontWeight::bold())\n\t)\n\t->transformation((new Transformation())\n\t->rotate(Rotate::byAngle(-25))\n\t->adjust(Adjust::opacity(6)))\n\t)\n\t->position((new Position())\n\t->tiled()\n\t)\n\t)\n\t->sign()\n\t->deliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"PHP","packageName":"cloudinary_php","packageStatus":"","packageVersion":"2.x"},{"sdkId":"php","framework":"php","language":"php","rawCodeSnippet":"cl_image_tag(\"cookies.jpg\", array(\"sign_url\"=>true, \"type\"=>\"authenticated\", \"transformation\"=>array( array(\"angle\"=>-25, \"overlay\"=>array(\"font_family\"=>\"Arial\", \"font_size\"=>25, \"font_weight\"=>\"bold\", \"text\"=>\"John%20Doe\"), \"opacity\"=>6), array(\"flags\"=>array(\"tiled\", \"layer_apply\")) )))","codeSnippet":"cl_image_tag(\"cookies.jpg\", array(\"sign_url\"=>true, \"type\"=>\"authenticated\", \"transformation\"=>array(\n array(\"angle\"=>-25, \"overlay\"=>array(\"font_family\"=>\"Arial\", \"font_size\"=>25, \"font_weight\"=>\"bold\", \"text\"=>\"John%20Doe\"), \"opacity\"=>6),\n array(\"flags\"=>array(\"tiled\", \"layer_apply\"))\n )))","status":0,"statusText":"Ok","displayName":"PHP","packageName":"cloudinary_php","packageStatus":"legacy","packageVersion":"1.x"},{"sdkId":"java","framework":"java","language":"java","rawCodeSnippet":"cloudinary.url().transformation(new Transformation().angle(-25).overlay(new TextLayer().fontFamily(\"Arial\").fontSize(25).fontWeight(\"bold\").text(\"John%20Doe\")).opacity(6).chain() .flags(\"tiled\", \"layer_apply\")).signed(true).type(\"authenticated\").imageTag(\"cookies.jpg\");","codeSnippet":"cloudinary.url().transformation(new Transformation()\n .angle(-25).overlay(new TextLayer().fontFamily(\"Arial\").fontSize(25).fontWeight(\"bold\").text(\"John%20Doe\")).opacity(6).chain()\n .flags(\"tiled\", \"layer_apply\")).signed(true).type(\"authenticated\").imageTag(\"cookies.jpg\");","status":0,"statusText":"Ok","displayName":"Java","packageName":"cloudinary","packageStatus":"","packageVersion":"1.x"},{"sdkId":"ruby","framework":"ruby","language":"ruby","rawCodeSnippet":"cl_image_tag(\"cookies.jpg\", :sign_url=>true, :type=>\"authenticated\", :transformation=>[ {:angle=>-25, :overlay=>{:font_family=>\"Arial\", :font_size=>25, :font_weight=>\"bold\", :text=>\"John%20Doe\"}, :opacity=>6}, {:flags=>[\"tiled\", \"layer_apply\"]} ])","codeSnippet":"cl_image_tag(\"cookies.jpg\", :sign_url=>true, :type=>\"authenticated\", :transformation=>[\n {:angle=>-25, :overlay=>{:font_family=>\"Arial\", :font_size=>25, :font_weight=>\"bold\", :text=>\"John%20Doe\"}, :opacity=>6},\n {:flags=>[\"tiled\", \"layer_apply\"]}\n ])","status":0,"statusText":"Ok","displayName":"Ruby","packageName":"cloudinary","packageStatus":"","packageVersion":"1.x"},{"sdkId":"csharp","framework":"csharp","language":"csharp","rawCodeSnippet":"cloudinary.Api.UrlImgUp.Transform(new Transformation().Angle(-25).Overlay(new TextLayer().FontFamily(\"Arial\").FontSize(25).FontWeight(\"bold\").Text(\"John%20Doe\")).Opacity(6).Chain() .Flags(\"tiled\", \"layer_apply\")).Signed(true).Action(\"authenticated\").BuildImageTag(\"cookies.jpg\")","codeSnippet":"cloudinary.Api.UrlImgUp.Transform(new Transformation()\n .Angle(-25).Overlay(new TextLayer().FontFamily(\"Arial\").FontSize(25).FontWeight(\"bold\").Text(\"John%20Doe\")).Opacity(6).Chain()\n .Flags(\"tiled\", \"layer_apply\")).Signed(true).Action(\"authenticated\").BuildImageTag(\"cookies.jpg\")","status":0,"statusText":"Ok","displayName":".NET","packageName":"CloudinaryDotNet","packageStatus":"","packageVersion":"1.x"},{"sdkId":"dart","framework":"dart","language":"dart","rawCodeSnippet":"cloudinary.image('cookies.jpg').transformation(Transformation()\n\t.addTransformation(\"a_-25,l_text:Arial_25_bold:John Doe,o_6\/fl_tiled.layer_apply\")\n\t.setSignature(\"GOOo0vEj\")\n\t.setDeliveryType(\"authenticated\"));","codeSnippet":"cloudinary.image('cookies.jpg').transformation(Transformation()\n\t.addTransformation(\"a_-25,l_text:Arial_25_bold:John Doe,o_6\/fl_tiled.layer_apply\")\n\t.setSignature(\"GOOo0vEj\")\n\t.setDeliveryType(\"authenticated\"));","status":0,"statusText":"Ok","displayName":"Dart","packageName":"cloudinary_dart","packageStatus":"","packageVersion":"0.x"},{"sdkId":"swift","framework":"swift","language":"swift","rawCodeSnippet":"imageView.cldSetImage(cloudinary.createUrl().setType( \"authenticated\").setTransformation(CLDTransformation().setAngle(-25).setOverlay(\"text:Arial_25_bold:John%20Doe\").setOpacity(6).chain() .setFlags(\"tiled\", \"layer_apply\")).generate(\"cookies.jpg\", signUrl: true)!, cloudinary: cloudinary)","codeSnippet":"imageView.cldSetImage(cloudinary.createUrl().setType( \"authenticated\").setTransformation(CLDTransformation()\n .setAngle(-25).setOverlay(\"text:Arial_25_bold:John%20Doe\").setOpacity(6).chain()\n .setFlags(\"tiled\", \"layer_apply\")).generate(\"cookies.jpg\", signUrl: true)!, cloudinary: cloudinary)","status":0,"statusText":"Ok","displayName":"iOS","packageName":"cloudinary","packageStatus":"","packageVersion":"3.x"},{"sdkId":"android","framework":"android","language":"android","rawCodeSnippet":"MediaManager.get().url().transformation(new Transformation().angle(-25).overlay(new TextLayer().fontFamily(\"Arial\").fontSize(25).fontWeight(\"bold\").text(\"John%20Doe\")).opacity(6).chain() .flags(\"tiled\", \"layer_apply\")).signed(true).type(\"authenticated\").generate(\"cookies.jpg\");","codeSnippet":"MediaManager.get().url().transformation(new Transformation()\n .angle(-25).overlay(new TextLayer().fontFamily(\"Arial\").fontSize(25).fontWeight(\"bold\").text(\"John%20Doe\")).opacity(6).chain()\n .flags(\"tiled\", \"layer_apply\")).signed(true).type(\"authenticated\").generate(\"cookies.jpg\");","status":0,"statusText":"Ok","displayName":"Android","packageName":"cloudinary-android","packageStatus":"","packageVersion":"1.x"},{"sdkId":"flutter","framework":"flutter","language":"flutter","rawCodeSnippet":"cloudinary.image('cookies.jpg').transformation(Transformation()\n\t.addTransformation(\"a_-25,l_text:Arial_25_bold:John Doe,o_6\/fl_tiled.layer_apply\")\n\t.setSignature(\"GOOo0vEj\")\n\t.setDeliveryType(\"authenticated\"));","codeSnippet":"cloudinary.image('cookies.jpg').transformation(Transformation()\n\t.addTransformation(\"a_-25,l_text:Arial_25_bold:John Doe,o_6\/fl_tiled.layer_apply\")\n\t.setSignature(\"GOOo0vEj\")\n\t.setDeliveryType(\"authenticated\"));","status":0,"statusText":"Ok","displayName":"Flutter","packageName":"cloudinary_flutter","packageStatus":"","packageVersion":"0.x"},{"sdkId":"kotlin","framework":"kotlin","language":"kotlin","rawCodeSnippet":"cloudinary.image {\n\tpublicId(\"cookies.jpg\")\n\t overlay(Overlay.source(\n\tSource.text(\"John Doe\",TextStyle(\"Arial\",25) {\n\t fontWeight(\n\tFontWeight.bold())\n\t }) {\n\t transformation(Transformation {\n\t rotate(Rotate.byAngle(-25))\n\t adjust(Adjust.opacity(6)) })\n\t }) {\n\t position(Position() {\n\t tiled()\n\t })\n\t })\n\t signature()\n\t deliveryType(\"authenticated\") \n}.generate()","codeSnippet":"cloudinary.image {\n\tpublicId(\"cookies.jpg\")\n\t overlay(Overlay.source(\n\tSource.text(\"John Doe\",TextStyle(\"Arial\",25) {\n\t fontWeight(\n\tFontWeight.bold())\n\t }) {\n\t transformation(Transformation {\n\t rotate(Rotate.byAngle(-25))\n\t adjust(Adjust.opacity(6)) })\n\t }) {\n\t position(Position() {\n\t tiled()\n\t })\n\t })\n\t signature()\n\t deliveryType(\"authenticated\") \n}.generate()","status":0,"statusText":"Ok","displayName":"Kotlin","packageName":"kotlin-url-gen","packageStatus":"","packageVersion":"1.x"},{"sdkId":"jquery","framework":"jquery","language":"jquery","rawCodeSnippet":"$.cloudinary.image(\"cookies.jpg\", {type: \"authenticated\", transformation: [ {angle: -25, overlay: new cloudinary.TextLayer().fontFamily(\"Arial\").fontSize(25).fontWeight(\"bold\").text(\"John%20Doe\"), opacity: 6}, {flags: [\"tiled\", \"layer_apply\"]} ]})","codeSnippet":"$.cloudinary.image(\"cookies.jpg\", {type: \"authenticated\", transformation: [\n {angle: -25, overlay: new cloudinary.TextLayer().fontFamily(\"Arial\").fontSize(25).fontWeight(\"bold\").text(\"John%20Doe\"), opacity: 6},\n {flags: [\"tiled\", \"layer_apply\"]}\n ]})","status":0,"statusText":"Ok","displayName":"jQuery","packageName":"cloudinary-jquery","packageStatus":"","packageVersion":"2.x"},{"sdkId":"react_native","framework":"react_native","language":"react_native","rawCodeSnippet":"new CloudinaryImage(\"cookies.jpg\")\n .overlay(\n source(\n text(\n \"John Doe\",\n new TextStyle(\"Arial\", 25).fontWeight(\"bold\")\n ).transformation(\n new Transformation().rotate(byAngle(-25)).adjust(opacity(6))\n )\n ).position(new Position().tiled())\n )\n .setSignature(\"GOOo0vEj\")\n .setDeliveryType(\"authenticated\");","codeSnippet":"new CloudinaryImage(\"cookies.jpg\")\n .overlay(\n source(\n text(\n \"John Doe\",\n new TextStyle(\"Arial\", 25).fontWeight(\"bold\")\n ).transformation(\n new Transformation().rotate(byAngle(-25)).adjust(opacity(6))\n )\n ).position(new Position().tiled())\n )\n .setSignature(\"GOOo0vEj\")\n .setDeliveryType(\"authenticated\");","status":0,"statusText":"Ok","displayName":"React Native","packageName":"cloudinary-react-native","packageStatus":"","packageVersion":"0.x"}]" parsed-url="{"url":"https:\/\/res.www.aaaalireno.com\/demo\/image\/authenticated\/s--GOOo0vEj--\/a_-25,l_text:Arial_25_bold:John%20Doe,o_6\/fl_tiled.layer_apply\/cookies.jpg","cloud_name":"demo","host":"res.www.aaaalireno.com","type":"authenticated","resource_type":"image","transformation":[{"angle":"-25","overlay":"text:Arial_25_bold:John Doe","opacity":"6"},{"flags":"tiled.layer_apply"}],"transformation_string":"a_-25,l_text:Arial_25_bold:John Doe,o_6\/fl_tiled.layer_apply","url_suffix":"","version":"","secure":true,"public_id":"cookies.jpg","extension":"jpg","format":"jpg","format_code":true,"signature":"GOOo0vEj","private_cdn":false,"result_asset_type":"image"}" with-url="false" > 加载代码示例

确定水印能帮助确保John不违反公司策略并分享高山图像带别者

贝斯特登录入口官网下载防止未经认证获取资源可因各种原因成为重要关注问题贝斯特登录入口官网下载使用cookie,您可以把认证工作流提升到全新层次自定义访问资源,包括可灵活为每个认证用户逐个定制访问量贝斯特登录入口官网下载关于验证资源和实施cookie验证的更多详细信息见文档经认证访问媒体资产.

新建认证功能目前可供我们使用企业客户端需要小搭建联系我们允许这些特征记账

云化减少图像变换、存储、管理交付的复杂性,为开发者提供易用、端对端云解决方案云化使开发商能够专注于创建应用并展示最佳图像万一你还没试云语 你还等什么访问网站注册免费账号.

回顶

特征邮箱

Baidu
map