CN109691057A - 经由私人内容分发网络可交换地取回敏感内容 - Google Patents
经由私人内容分发网络可交换地取回敏感内容 Download PDFInfo
- Publication number
- CN109691057A CN109691057A CN201780055292.0A CN201780055292A CN109691057A CN 109691057 A CN109691057 A CN 109691057A CN 201780055292 A CN201780055292 A CN 201780055292A CN 109691057 A CN109691057 A CN 109691057A
- Authority
- CN
- China
- Prior art keywords
- cdn
- content
- url
- cloud service
- assets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/2885—Hierarchically arranged intermediate devices, e.g. for hierarchical caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Abstract
本公开在用于通过网络提供内容的系统中提供了改进的计算效率。准许混合内容源送以经由内容分发系统(CDN)和集中式服务通过提供给客户端设备的单个URL相互结合来提供内容。为客户端设备提供到期令牌,到期令牌用于授权CDN以具有集中式服务固有的安全性的方式向客户端设备请求和提供内容。因此,租户能够通过提供给客户端的、具有比公共CDN更高的安全性的单一统一资源定位符而将CDN用作可用源。
Description
背景技术
选择通过因特网分发内容的方法通常需要在传递速度和对内容的控制等级上进行权衡。使用中央分发点(例如中央云服务)允许内容提供者更好地控制哪些客户端访问内容以及更高的更新内容的能力,但客户端需要进行身份验证,并且中央服务可能位于远离客户处——这减慢传递速度。然而,使用内容分发网络(CDN),允许客户端更快速地访问内容,因为边缘服务器跨地理区域分布,但代价是提供者的控制和更新内容的能力,因为内容需要在整个CDN上分布,并且因此可能不包括访问控制。内容的开发者和提供者被迫在一种交付方法或另一种交付方法之间进行选择,并且改变交付方法通常是笨重的、耗时的并且资源密集的。
发明内容
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式部分中进一步描述。本发明内容不旨在确定所要求保护的主题的所有关键或必要特征,也不旨在帮助确定所要求保护的主题的范围。
在本公开中描述了混合内容提供系统及其使用方法。如本文所述,内容提供者可以指定要经由中央云服务提供的内容和要经由私有内容分发网络(CDN)提供的内容,并快速转换哪个内容源将内容提供给客户端。因此,与仅使用中央云服务的环境相比,客户端被提供的内容更快,并且与仅使用CDN的环境相比,内容提供者被赋予对访问权限的更大控制和提供更新内容的能力。通过采用本公开,计算设备可以通过减少需要在彼此之间传输的数据量来改善其功能,并且减少需要花费的处理资源量以快速且安全地在因特网上共享内容。
示例被实现为计算机过程、计算系统、或诸如设备、计算机程序产品或计算机可读介质的制品。根据一个方面,该计算机程序产品是计算机系统可读并且编码包括用于执行计算机过程的指令的计算机程序的计算机存储介质。
在下面的附图和描述中阐述了一个或多个方面的细节。通过阅读以下详细描述和对相关附图的回顾,其他特征和优点将是显而易见的。应理解,以下详细描述仅是解释性的,而不是对权利要求的限制。
附图说明
包含在本公开中并构成本公开的一部分的附图示出了各个方面。在图中:
图1示出了其中可以实践本公开的示例环境;
图2示出了给定内容资产的示例URL集;
图3是示出用于在提供单个地址时实现对内容的可交换取回的混合内容源送(sourcing)的示例方法中涉及的一般阶段的流程图;
图4是示出用于在提供单个地址时禁止对内容的可交换取回的混合内容源送的示例方法中涉及的一般阶段的流程图;
图5是示出用于在经由混合内容源送提供单个地址时客户端设备可交换地请求内容资产的示例方法中涉及的一般阶段的流程图;
图6是示出用于CDN验证是否可以将敏感的所请求的内容资产提供给请求客户端的示例方法中涉及的一般阶段的流程图;
图7是示出计算设备的示例物理组件的框图;以及
图8A和8B是移动计算设备的框图。
具体实施方式
以下详细描述参考附图。只要可能,在附图中使用相同的附图标记,并且以下描述涉及相同或相似的元件。虽然可以描述示例,但是修改、改编和其他实现方式是可能的。例如,可以对附图中示出的元件进行替换、添加或修改,并且可以通过将阶段替换,重新排序或添加到所公开的方法来修改本文描述的方法。因此,以下详细描述不是限制性的,而是由所附权利要求限定适当的范围。示例可以采用硬件实现方式或完全软件实现方式的形式,或者结合软件和硬件方面的实现方式。因此,以下详细描述不应被视为具有限制意义。
本文描述了利用云服务和私有内容分发网络(CDN)的混合分发系统和方法。云服务和CDN包括一个或多个计算设备,其被配置为从租户接收内容并经由网络(例如,因特网)与请求内容的授权客户端共享内容。云服务是一种结构化服务,其为内容提供集中的内容源,其可以包括对该内容的访问控制。CDN是一种内容提供者,它使用云服务作为其来源,并在比云服务更广泛的地理区域内分发内容,以比云服务更快并且以更少的开销来提供内容。使得寻求分发内容的租户能够设置哪些内容资产经由云服务分发以及哪些内容资产经由CDN分发,并且可以快速准许或禁止CDN作为内容资产的可用源,而无需配置内容如何在CDN中分布,并且对客户的影响最小。
图1示出了其中可以实践本公开的示例环境100。如图所示,客户端设备110可操作以将请求传送到云服务120并从云服务120和CDN 130接收内容。云服务120与租户设备140通信,内容提供者可通过租户设备140从云服务120上载或移除内容,并且可以设置如何使该内容对客户端设备110可用。云服务120还与CDN 130通信以基于来自租户设备140的命令向CDN 130提供内容资产以准许CDN 130作为客户端设备110的可用内容源。在各个方面,来自租户设备140的包括CDN 130的配置设置的命令可以直接发送到CDN 130,或者可以由云服务120从租户设备140转发。
客户端设备110和租户设备140示出了多种计算系统,包括但不限于台式计算机系统,有线和无线计算系统,移动计算系统(例如,移动电话、上网本、平板电脑或板型计算机、笔记本计算机和笔记本电脑),手持设备,多处理器系统,基于微处理器或可编程的消费电子产品,小型计算机,打印机和大型计算机。关于图7、8A和8B更详细地讨论这些计算系统的硬件。客户端设备110由客户操作,客户可以是请求内容的人或自动化系统(例如,“机器人”)。例如,GOOGLE NOWTM或电子助手的实例(可从加利福尼亚州库比蒂诺的苹果公司获得;可从加利福尼亚州山景城的Alphabet公司获得;以及可从华盛顿州雷蒙德市的微软公司获得)可以响应于或预期来自人类用户的查询来请求内容。类似地,租户设备140由租户操作,租户可以是人或自动系统,其提供和管理可供客户请求的内容。在各个方面,租户和客户可以是相同的实体,例如,当开发者发布网页(作为租户)然后通过访问(作为客户)该网页的实时版本来验证网页是否正确显示时。
云服务120存储针对租户的内容以通过网络(例如,因特网)提供给客户端。在各个方面,云服务120可以由租户或由第三方代表租户在租户的方向上操作。云服务120可以是结构化存储服务或协作工具,其可操作以限制什么内容对某些客户可用。例如,租户可以发布公开可用的内容,以便任何潜在客户可以请求和接收该内容,但是租户也可以发布仅对受限制的一组潜在客户可用的内容(例如,对一个实体私有,在选定的实体白名单之间共享,根据实体黑名单阻止共享)。例如,一个或多个内容项可以托管在云服务120中,例如ALFRESCOTM(可从乔治亚州亚特兰大的Alfresco软件公司获得),HUDDLE TM(可从英国伦敦的Huddle公司获得),GOOGLE DRIVETM(可从加利福尼亚州山景城的Alphabet公司获得),WORDPRESS TM(可从加利福尼亚州旧金山的Automattic公司获得),(可从华盛顿州雷蒙德市的微软公司获得),但可包括其他企业或个人内容管理系统。
可以根据可以具有各种许可级别的各种“库”、“文件夹”或“站点”在云服务120内组织内容。当接收到对内容的请求时,云服务120将确定请求客户是否与访问所请求内容的适当许可级别相关联,并且可以要求客户端设备110在将所请求的内容发送到客户端设备110之前提供认证(例如,认证令牌、用户名/密码对)。
CDN 130包括以分层结构布置的一系列计算设备。从源(也称为头端或原点)取回内容,并将其高速缓存在包括CDN 130的逐步较低层的计算设备中,直到内容被高速缓存在边缘服务器上为止以便传输到请求该内容的客户端设备110。包括CDN 130的边缘服务器在地理上广泛分布,使得内容可以比单个位于中心的内容源更少地延迟地提供给客户;提高响应内容请求的速度。
当边缘服务器不具有客户请求的内容时,它将从CDN 130中的下一个更高层请求该内容,该更高层进而可以将请求转发到逐渐更高的层,直到到达内容源为止,并且内容通过中间服务器链分发以提供给边缘服务器并且被发送到客户端设备110。包括CDN 130的服务器可以由CDN 130的管理员在预期客户请求的情况下预先填充或者可以响应于客户请求而填充;只有与请求给定内容资产的客户通信的那些边缘服务器(以及它们上面的层中的服务器)才会存储给定的内容资产。
包括CDN 130的每个服务器可以将内容缓存不同的时间长度,该时间长度可以由采用CDN 130的租户或CDN 130的管理员配置,以在给定时间长度内没有请求内容项时释放存储资源或遵守内容资产的保留政策。例如,如果在n天内没有客户从第一边缘服务器请求给定内容项,则可以将该内容项标记以在第一边缘服务器上覆盖,或者可以从第一边缘服务器删除该内容项,但是第二边缘服务器可以独立于第一个边缘服务器在其缓存中维护该内容项。此外,下一个更高层(第一个边缘服务器从其接收内容项)可以保留内容项(n+1)天而无需客户端或边缘服务器请求内容项,从而在自上次请求起n天后再次从边缘服务器请求内容的情况下减少在CDN 130的层之间传送所需要的数据量。
与云服务120不同,CDN 130不包括客户端通过其“登录”以接收对内容的访问的认证控制;知道托管在CDN 130中的给定统一资源定位符(URL)的任何请求客户端可以接收与该URL相关联的内容资产,除非CDN 130实现附加控制。在一些方面,CDN 130可以由租户管理,但是在其他方面可以替代地是由第三方提供的服务以更快地将租户的内容分发给可以跨多个位置分别的客户。提供CDN 130的第三方的示例包括但不限于:马萨诸塞州剑桥的Akamai Techs.公司;亚利桑那州坦佩的Limelight Networks公司;以及布鲁姆菲尔德的Level 3Communications公司。
可以理解,敏感内容资产(即,租户不希望与公众共享的那些资产)存储在访问控制方案后面的云服务120中。这里公开的混合系统允许租户将云服务120的访问控制扩展到CDN 130,同时允许客户端从最高效的源请求内容资产,从而利用每个内容供应系统的优点来提高访问内容所用系统的效率和速度。
租户可以从租户设备140发信号通知允许经由CDN 130共享存储在云服务120中的哪些内容资产。作为响应,CDN 130使用云服务120作为其源,从该源高速缓存资产并将资产分配到CDN 130内的适当层。当不再允许经由CDN 130共享一个或多个内容资产时,通过向CDN 130发送高速缓存无效请求并且移除云服务120作为CDN 130中的给定内容资产的源,租户可以从租户设备140发信号。可以理解,云服务120还可以发送缓存无效请求,同时将从云服务120可用的内容资产留给CDN 130,迫使CDN 130请求最新版本的内容资产以向客户端提供该内容资产的更新或最新版本。
客户端设备110经由web浏览器或根据与内容项相关联的URL请求内容项的其他应用来访问内容。可以理解,web浏览器通常对可以对单个源做出的内容的并发请求的数量有限制,并且内容请求通常可以彼此依赖;对取回单个内容资产的速度进行小幅改进会对由许多资产组成的内容项产生很大影响。例如,访问网站作为内容项的客户端可以请求网页本身,其包括网页的超文本标记语言(HTML)源以及诸如JavaScript文件、级联样式表(CSS)、嵌入视频、音频文件、图像等之类的多个设计元素,这都需要从其相关联的源请求,并且这些元素可以进一步指定稍后将需要被请求的其他内容资产(例如,在CSS内指定的图像)以供客户端完全接收内容项。
敏感内容资产在由其访问控制方案后面的云服务120托管和服务的父资产(例如,网页、CSS文件)中引用。客户端由云服务120验证,并且对于父资产的每个所请求的子资产(和孙子资产),生成指向CDN 130的新URL,用于经由CDN 130访问敏感子内容资产。CDN 130被配置为使用该新URL从请求中提取令牌和密钥信息,以使用这些数据从云服务120请求将内容资产向使用这些数据的客户端释放的许可。当接收到许可时,CDN130将释放其存储的所请求的内容资产,并且将从云服务120请求(用于后续存储和释放)内容资产,云服务120尚未存储该内容资产,从而使得CDN 130不需要是准备/分阶段共享敏感内容资产;响应于对内容资产的客户端请求,可以在运行时填充CDN 130。
图2示出了给定内容资产的示例URL集200。这里讨论了URL的若干变体以用于从各种源取回内容,并且包括URL集200的示例URL都指向相同的示例内容资产,以便提供那些URL及其组成元素的非限制性示例。
URL集200包括:云URL 201,其指向由云源120托管的内容资产;授权URL 202,CDN130通过该授权URL请求来自云源120的授权以提供敏感内容资产;源URL 203,CDN 130从源URL 203接收敏感内容资产以便在CDN 130内供应以便分发给客户端设备110;以及CDN URL204,CDN 130在CDN URL 204处托管敏感内容资产,并且客户端可以通过CDN URL 204从CDN130请求敏感内容资产。
URL集200中的每个URL由若干元素组成,其包括:方案210,其标识用于请求资产的协议或指定相对于当前使用的协议来选择要使用的协议(例如,http://、https://、ftp://、//);主机值220,其指向云服务的URL的更高划分(例如,域名或IP地址);所提供的内部文件路径230,其指定云服务的文件路径的中间部分;资产标识符240,其指向给定的内容资产;查询250,其包括用于到期251和密钥252的参数作为令牌的一部分,以用于提供对内容资产的有限访问;CDN地址270,其指向CDN 130上的租户地址的顶部划分。可以理解,资产标识符240可以包括在各个方面中的多于一个正斜杠划分的段以识别一组位置以及包含资产作为共享库。
当CDN 130是有效源时,云源120将父内容资产中的云URL 201转换为CDN URL204,以便客户端设备110从CDN 130请求子内容资产。当CDN 130时如果不是有效源,则云源120为父内容资产中的子资产提供云URL 201。
包括到期251和密钥252的令牌被集成到授权URL 202、源URL 203和CDN URL 204中作为对敏感内容资产的查询250的参数,以使得敏感内容资产可以被请求,但仅限于有限的时间。
令牌由云服务120发布给经认证的客户端,以提供客户端可以从CDN 130请求敏感子内容资产的时间限制时段。令牌是针对每个客户端唯一创建的,并且在由租户设定的时间段内将是有效的。例如,可以为第一用户生成令牌并且在n分钟内有效,以使得令牌可以用于从CDN 130请求第一用户被授权在从令牌创建起的n分钟内访问的多个内容资产(或多次访问一个内容资产)。可以理解,在客户端与另一客户端共享令牌(例如,通过电子邮件)的情况下,令牌有效期的持续时间越短,CDN 130将越安全,但将鼓励客户端设备110依靠其本地缓存来避免需要从CDN 130查询资产,从而减少网络使用。
令牌的到期251被呈现为令牌不再有效的明文时间值。在各个方面,到期251被提供为自纪元开始(一个纪元时间)以来的毫秒数,其指示令牌将到期的时间。密钥252是根据基于云URL 201中包含的信息和时间戳(或其他随机数)的散列函数的输出生成的,并且在其散列的计算中包括到期251。散列函数产生数据的单向加密,这可以根据本领域普通技术人员已知的各种算法(SHA-2,SHA256,MD5,BLAKE2,Keccak,GOST等)来完成。在各个方面,密钥252可以包括关于其自身的附加信息,其涉及:标识散列构造规则的版本,密钥252的签名或校验和,以及散列函数的输出。密钥252提供数据,通过该数据,各方可以确认令牌的真实性,从而确认包括令牌的URL的真实性。
作为密钥252的创建的一部分,云服务120验证请求内容资产的用户是否有权被提供所讨论的内容资产。当请求用户具有许可时,将生成密钥252,但是当请求用户没有许可时,云服务120将不生成密钥252,并且云服务120将替代地提供云URL 201,请求用户可以通过云URL 201与云服务120协商以接收所链接到的内容资产。因为密钥252充当匿名访问令牌,允许拥有密钥252的任何人访问所链接到的内容资产,所以将到期251包含在内防止从授权用户到访问这些内容资产的其他用户(授权或其他)的URL的无限共享。当经过了在到期251中记录的时间时,URL不再被CDN 130或云服务120视为有效。
通过在云URL 201的至少一部分上运行散列函数和时间戳(或其他随机数),在云服务120上为由租户设备140指定的位置创建密钥252。在各个方面,为了确保云URL 201的一致格式化,可以在被散列之前将云URL 201转换为全部大写,全部小写或字符编码的另一标准化。可以对整个云URL 201进行散列,从而得到针对每个内容资产的唯一散列值,或者仅导致云URL 201的前X个字符(例如,主机值220和内部文件路径270的至少一部分)。提供针对给定文件路径共享的散列值。然后,内容资产由源服务120在源URL 203处托管,并且当CDN 130被准许作为内容源时,CDN 130将被提供CDN URL 204并且将经由内部逻辑构建授权URL 202和源URL 203以从云服务120取回内容资产,作为根据CDN URL 204在CDN 130中托管内容资产的源。
CDN URL 204指向内容资产,它由CDN130托管,并向CDN 130提供令牌(包括到期251和密钥252)以确定客户端是否被授权访问该内容。CDN URL 204包括:方案210;CDN地址270;主机值220,来自租户的云服务120;文件路径230;资产标识符240;以及包括到期251和密钥252作为参数的查询250。在各个方面,文件路径230可以被省略,从云URL 201中使用的文件路径230修改,或者用散列值替换以混淆云服务120使用的存储路径。
响应于CDN 130从包括CDN URL 204的客户端设备110接收对内容资产的请求,CDN130可操作以产生授权URL 202以及源URL 203,授权URL 202用于从云服务120确定客户端是否被授权访问所请求的内容资产,源URL 203用于在内容资产尚未被CDN 130高速缓存的情况下从源URL 203请求内容资产。授权URL 202和源URL 203两者都包括:方案210;主机值220;文件路径230;资产标识符240;以及包括到期251和密钥252作为参数的查询250。在各个方面,文件路径230可以被省略,从云URL 201中使用的文件路径230修改,或者用散列值替换以混淆云服务120使用的存储路径。在其他方面,客户端被授予访问多个内容资产的库,可以省略资产标识符240。
授权URL 202与源URL 203的不同之处在于授权URL 202包括客户端授权路径260,而源URL 203包括项目授权路径265。CDN 130经由授权URL 202(包括客户端授权路径260)与云源120联系以将到期251和密钥252传递到云源120,以确定所识别的客户端是否被授权从所识别的库接收所请求的内容资产或内容资产。当令牌有效时,如果CDN 130已经缓存了所请求的内容资产,则CDN 130将从云源120接收授权并将内容资产发送到经授权的客户端。当CDN 130未缓存经授权的客户端所请求的内容资产时,CDN 130经由源URL 203(包括项目授权路径265)联系云源120以将到期251和密钥252传递到云源120,以确定所识别的内容资产或库是否可用于经由CDN 130共享。当内容资产或库可用于经由CDN 130共享时,云源120将那些所请求的内容资产传递到CDN 130以进行高速缓存并且分配。
当给定资产不可用于经由CDN 130共享时,或者客户端未被授权从CDN 130接收内容资产时(例如,确定令牌已过期、丢失或无效),客户端设备110从CDN 130接收内容资产不可从CDN 130获得的错误消息(例如,404消息)。当租户准许CDN 130作为内容源时,内容资产可以自动地或者基于对CDN URL 204处的内容资产的客户端请求而在CDN 130内分发。当CDN 130接收对它当前未拥有的内容的请求时,它可以向CDN 130或云服务120内的更高层发送请求以取回该内容资产。如果无法从更高层取回内容,或者URL没有指向CDN 130服务的有效内容资产,则CDN 130将向客户端设备110响应CDN 130不是有效源(例如,通过401、403、404、406、410、421、451或其他网络代码-参见,IETF RFC 7231),客户端设备110可以通过使用云URL 201从云服务120请求内容资产。
可以理解,可以从图2中所示的内容修改所示示例中给出的元素的文本和顺序,以满足各种实现方式的需要;本领域普通技术人员将认识到图2和相关讨论提供了URL集200的非限制性解释。包括URL集200的URL的格式允许从一个URL到另一个URL的转换。可以根据通过租户提供的逻辑(例如,作为从租户提供的CSS或JavaScript文件的一部分)提供给客户端设备110或CDN 130的任何定义来重新排序共同共享的每个URL的元素,以及对一个URL唯一任何元素基于提供给客户端设备110或CDN 130的定义,在转换期间可以类似地移除或插入。
图3是示出用于实现用于可交换的内容供应的混合内容源送的示例方法300中涉及的一般阶段的流程图。可以响应于由租户准许混合内容源送的第一或随后时间来执行方法300。内容资产可以包括作为父资产的格式为URL的到子内容资产或设计元素的链接。例如,HTML、CSS或JavaScript对象的内容资产可以经由URL引用另一内容资产。提供给客户端设备110的内容资产可以包括被插入到由云服务120或CDN 130托管的内容资产的链接的URL。
方法300开始于操作310,其中租户识别经由CDN 130分发的敏感内容以经由云服务120来补充内容的分发。从租户设备140接收的租户偏好指定哪些内容资产被识别为可经由CDN 130分发。
在操作320处,所识别的内容将使得该内容在其处被托管以供客户端消费的URL(即,云URL 201)被散列,并且该散列将用于创建针对该内容资产(或库)的密钥252。在一些方面,密钥252包括版本信息,以及除了云URL 201的散列的输出之外的另外的校验和或签名。在其他方面,云URL 201被散列而没有资产标识符240,使得多个内容资产使用类似文件路径,但是对于不同资产标识符240的可以使用相同的密钥252。
在操作330,密钥用于配置在其处托管内容资产以供云服务120提供作为CDN 130的源的授权URL 202和源URL 203。云服务120将仅对使用源自CDN 130的授权URL 202和源URL 203的通信进行响应,并且甚至仅当租户已经向云服务120发信号通知来自CDN 130的分发被准许(操作340)并且确定客户端被授权访问内容资产时。当准许来自CDN 130的分发时,来自除CDN 130之外的实体的请求将被拒绝,尽管云服务120可以以拒绝访问或其他适当的错误代码来对请求实体进行响应。来自CDN 130的使用授权URL 202或源URL 203的请求将基于所包括的到期251和密钥252来验证。在一些方面,可以经由与CDN 130相关联的已知IP地址的白名单或签名头部认证来将请求识别为源自CDN 130,其中头部用在云服务120与CDN 130之间共享的秘密签名。
在操作340,云服务120和CDN 130被配置为准许CDN 130以服务内容资产。在各个方面,从租户设备140向云服务120发信号通知该配置,云服务120进而发信号通知CDN 130开始经由指定的源URL 203请求在云服务120中托管的内容。云服务120可以为CDN 130提供源URL 203的列表和关于如何将源URL 203转换为CDN URL 204或密钥252的逻辑以及用于从URL集200构造URL的逻辑,针对CDN 130中的内容资产的保留策略(例如,n天),并且可以提供共享秘密,以便可以适当地对针对来自源URL 203的内容资产的请求进行签名。可替代地,租户可以经由租户设备140直接向CDN 130提供转换逻辑、保留策略或共享秘密,或者使云服务120将这些数据转发到CDN 130。然后,方法300可以结束。
图4是示出用于禁止用于敏感内容的可交换提供的混合内容源送的示例方法400中涉及的一般阶段的流程图。方法400可以响应于租户完全禁止CDN 130用于内容源送,或者响应于从经由CDN 130的分发移除一个或多个特定内容资产或内容资产库而执行。
方法400在操作410开始,其中租户经由租户设备140向云服务120识别不再经由CDN 130与经由云服务120的分发相结合分发的内容。如果创建密钥252以最初按资产共享那些内容资产,则可以单独识别内容资产,否则,如果创建密钥252以识别可以共享内容资产的库,则将库识别为从经由CDN 130的分发中移除。可以理解,根据方法300,租户可以发信号通知一个或多个内容资产或库要从经由CDN 130的分发中移除(直到并包括所有租户的内容),并且可以稍后重新准许经由CDN 130的该内容分发。
在可选的操作420,云服务120停止托管来自源URL 203的所识别的内容资产。在各个方面,使源URL 203不可用;所有使用源URL 203的请求都将被拒绝。类似地,关联的授权URL 202也可以变得不可用。在其他方面,从云服务120删除授权URL 202和源URL 203;内容和内容资产被删除。在又一方面,可以清除被授权请求内容资产的客户端或令牌的列表并将其锁定为空状态;防止任何客户端被识别为针对CDN 130授权以为其缓存内容。
在操作430,针对所识别的内容资产的密钥252被无效以确保在用户请求时不在CDN 130上重新填充待清除的内容资产。来自客户端设备110的后续请求将被拒绝,因为用于请求内容资产的CDN URL 204将不包含由云服务120识别的密钥252。操作430阻止CDN130用不再允许经由CDN 130共享的内容资产来重新填充其缓存。
前进到操作440,租户设备140向CDN 130发送高速缓存清除命令,其在一些方面可以由云服务120从租户设备140接收并转发到CDN 130。高速缓存清除命令识别不可供从CDN130分发的内容资产并使CDN 130从其存储层中删除那些内容资产,或者使这些内容资产对客户端设备110不可用(例如,标记为覆写)。如将理解的,租户可独立于方法400执行操作410和440以迫使CDN 130更新所识别的内容资产。然后方法400可以结束。
图5是示出用于客户端设备110在经由混合内容源送提供单个地址时可交换地请求内容资产的示例方法500中涉及的一般阶段的流程图。
方法500在操作510开始,其中客户端设备110将对内容的请求发送到云服务120。云服务120将使用客户端设备110认证客户端,并且当客户端具有访问所请求内容的适当权限时,可以响应于该请求而向客户端设备110提供内容,否则可以拒绝该请求。在云服务120已经认证了客户端之后,云服务120将确定当CDN 130可用时是否提供包括到期251和密钥252的一个或多个CDN URL 204,或者当CDN 130不可用时是否提供来自相关URL集200的一个或多个相关联的云URL 201,其包括在客户端设备110在操作520处接收的父内容资产(例如,网页)中。
在操作520,客户端设备110接收父内容资产,该父内容资产包括由云服务120选择和插入的子内容资产的URL。例如,客户端可以已经请求包括请求图像的URL和CSS(网页的子内容资产)的网页(父内容资产),其中CSS请求另一图像(作为CSS的子内容资产)。云服务120确定是否提供链接到云服务120上托管的子内容资产的云URL 201或用于经由CDN 130取回内容资产的CDN URL 204。
在操作530,客户端设备110将基于父内容资产中提供的URL来从云服务120或CDN130请求内容资产。CDN URL 204由到期251和密钥252构成,其限制客户端设备110可以从CDN 130请求子资产的时间段。然后,方法500可以结束。
图6是示出用于CDN 130验证是否可以将请求的敏感内容资产提供给请求客户端的示例方法600中涉及的一般阶段的流程图。
方法600在操作610处进行,其中由CDN 130从客户端设备110接收对内容资产的请求。对内容资产的请求包括与该内容资产相关联的CDN URL 204,其包括客户端的到期251和内容资产的密钥252作为其查询250的参数。方法600前进到操作620,其中CDN 130从云服务120请求将内容资产分发给客户端的授权。CDN 130经由授权URL 202从云服务120请求对客户端的授权,授权URL 202包括客户端的令牌,令牌包括到期251和内容项的密钥252作为查询250的元素。在各个方面,CDN 130使用授权URL 202向云服务120发出HEAD调用或者类似请求以获得内容资产。云服务120评估该请求并尝试验证该令牌。当云服务120验证令牌时,授权代码被发送到CDN 130,而当云服务120未能验证(或无效)令牌时,没有授权代码被发送到CDN 130或替代地转位发送错误/失败代码。
在决策框630,由CDN 130确定客户端是否被授权从CDN 130接收内容资产。在各个方面,授权代码的接收用于确定客户端被授权,而在预定时间段(例如,超时)之后接收到错误/失败代码或缺少授权代码用于确定客户端未被授权。当确定客户端被授权时,方法600前进到决策框640。否则,当确定客户端未被授权时,方法600可以结束。
在决策框640,CDN 130确定所请求的内容是否已被高速缓存。当确定所请求的敏感内容已经被CDN 130高速缓存时,方法600进行到操作650。当确定所请求的敏感时未被高速缓存在CDN 130内,则方法600进行到操作660。
在操作650,将所请求的内容发送到从其接收到操作610的请求的客户端设备110。在各个方面,内容可以被高速缓存在终端服务器之上的层上,在这种情况下,CDN 130可以在将内容资产发送到客户端设备110之前在内部分发内容资产。
当确定内容未在CDN 130中高速缓存时,方法600前进到操作660,其中向云服务120请求客户端请求的内容资产。在各个方面,CDN 130使用源URL 203向云服务120发出针对内容资产的GET调用或类似请求。云服务120可以重新验证随请求一起提交的令牌以确定所请求的内容资产是否被授权与给定的客户共享。
在决策框670,确定所请求的内容是否被授权由CDN 130分发。在各个方面,可以确定当CDN 130从云服务120接收内容资产或成功消息时内容被授权分发。在各个方面,可以确定当CDN 130在设定的时间段(例如,请求超时)之后没有从云服务120接收内容资产或成功消息或CDN 130从云服务120接收到失败消息时,内容未被授权分发。
当在决策框670确定内容被授权由CDN 130分发时,CDN 130从云服务120接收内容资产,并在操作680将根据CDN的保留策略和布局来高速缓存内容资产。然后,方法600进行到操作650,其中内容资产被发送到客户端设备110,然后方法600可以结束。
否则,当在决策670确定内容资产尚未授权由CDN 130分发时,方法600可以在不从云服务120接收内容资产的情况下结束。在各个方面,当内容资产时如果没有被授权由CDN130分发,CDN 130可以从云服务120接收指示内容资产未被授权的错误消息或禁止消息,或者来自CDN 130的请求可能超时并且然后方法600可以结束。
方法600可以在响应于决策框630或决策框670确定客户端或内容资产未被授权经由CDN 130共享的情况下结束,而不从CDN 130向客户端设备110发送内容资产。在一些方面,CDN 130可以可选地向客户端设备110提供错误代码,向客户端设备110提供授权客户端缺少的信号,或者在方法600结束之前用信号通知客户端设备110从云服务120请求内容资产。
虽然已经在与在计算机上的操作系统上运行的应用程序一起执行的程序模块的一般上下文中描述了实现,但是本领域技术人员将认识到,这些方面也可以与其他程序模块一起实现。通常,程序模块包括例程、程序、组件、数据结构和执行特定任务或实现特定抽象数据类型的其他类型的结构。
本文描述的方面和功能可以通过多种计算系统来操作,包括但不限于台式计算机系统、有线和无线计算系统、移动计算系统(例如,移动电话、上网本、平板电脑或板型计算机、笔记本计算机和膝上型计算机)、手持设备、多处理器系统、基于微处理器或可编程的消费电子产品、小型计算机和大型计算机。
另外,根据一个方面,这里描述的方面和功能在分布式系统(例如,基于云的计算系统)上操作,其中应用功能、存储器、数据存储和取回以及各种处理功能通过分布式计算网络彼此远程操作,例如因特网或内联网。根据一个方面,通过机载计算设备显示器或通过与一个或多个计算设备相关联的远程显示单元显示各种类型的用户界面和信息。例如,在用户界面和各种类型的信息被投影到的墙壁表面上显示和交互各种类型的用户界面和信息。与实现方式实践的多个计算系统的交互包括击键输入、触摸屏输入、语音或其他音频输入、手势输入,其中相关联的计算设备配备有用于捕获和解释用户手势的检测(例如,相机)功能,用于控制计算设备的功能等。
图7-8B和相关描述提供了对其中实践示例的各种操作环境的讨论。然而,关于图7-8B示出和讨论的设备和系统是出于示例和说明的目的,而不是限制用于实践本文所述方面的大量计算设备配置。
图7是示出计算设备700的物理组件(即,硬件)的框图,利用其可以实践本公开的示例。在基本配置中,计算设备700包括至少一个处理单元702和系统存储器704。根据一个方面,根据计算设备的配置和类型,系统存储器704包括但不限于易失性存储设备(例如,随机存取存储器)、非易失性存储设备(例如,只读存储器)、闪存或这些存储器的任何组合。根据一个方面,系统存储器704包括操作系统705和适合于运行软件应用程序750的一个或多个程序模块706。根据一个方面,应用程序750包括租户可以这样的应用程序:根据本公开,通过该应用程序来控制经由混合分发系统分发内容资产或客户端可以请求内容。例如,操作系统705例如适合于控制计算设备700的操作。此外,方面结合图形库、其他操作系统或任何其他应用程序来实践,并且不限于任何特定应用程序或系统。该基本配置在图7中由虚线708内的那些组件示出。根据一个方面,计算设备700具有附加特征或功能。例如,根据一个方面,计算设备700包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储在图7中由可移动存储设备709和不可移动存储设备710示出。
如上所述,根据一个方面,多个程序模块和数据文件存储在系统存储器704中。当在处理单元702上执行时,程序模块706(例如,应用程序750)执行包括但不限于图3-5中所示的方法300、400和500的一个或多个阶段的处理。根据一个方面,根据示例使用其他程序模块,并且包括诸如电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片演示应用程序绘图或计算机辅助应用程序等之类的应用程序。
根据一个方面,计算设备700具有一个或多个输入设备712,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。根据一个方面,还包括诸如显示器、扬声器、打印机等输出设备714。上述设备是示例,可以使用其他设备。根据一个方面,计算设备700包括允许与其他计算设备718通信的一个或多个通信连接716。合适的通信连接716的示例包括但不限于射频(RF)发射器、接收器和/或收发器电路;通用串行总线(USB),并行和/或串行端口。
这里使用的术语计算机可读介质包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构或程序模块的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器704、可移动存储设备709和不可移动存储设备710都是计算机存储介质示例(即,存储器存储)。根据一个方面,计算机存储介质包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字通用光盘(DVD)或其他光学存储器、磁带盒、磁带、磁盘存储或其他磁存储设备或可以用于存储信息并且可以由计算设备700访问的任何其他制品。根据一个方面,任何这样的计算机存储介质是计算设备700的一部分。计算机存储介质不包括载波或其他传播的数据信号。
根据一个方面,通信介质由计算机可读指令、数据结构、程序模块或调制数据信号中的其他数据(诸如载波或其他传输机制)来体现,并且包括任何信息传递介质。根据一个方面,术语“已调制数据信号”描述了具有以对信号中的信息进行编码的方式设置或改变的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、射频(RF)、红外和其他无线介质的无线介质。
图8A和8B示出了其中可以实现这些方面的移动计算设备800,例如移动电话、智能电话、平板个人计算机、膝上型计算机等。参考图8A,示出了用于实现这些方面的移动计算设备800的示例。在基本配置中,移动计算设备800是具有输入元件和输出元件的手持式计算机。移动计算设备800通常包括显示器805和一个或多个输入按钮810,其允许用户将信息输入到移动计算设备800。根据一个方面,移动计算设备800的显示器805用作输入设备(例如,触摸屏显示器)。如果包括,则可选的侧输入元件815允许进一步的用户输入。根据一个方面,侧输入元件815是旋转开关、按钮或任何其他类型的手动输入元件。在其它示例中,移动计算设备800包含更多或更少的输入元件。例如,在一些示例中,显示器805可以不是触摸屏。在其它示例中,移动计算设备800是便携式电话系统,诸如蜂窝电话。根据一个方面,移动计算设备800包括可选的小键盘835。根据一个方面,可选的小键盘835是物理小键盘。根据另一方面,可选的小键盘835是在触摸屏显示器上生成的“软”小键盘。在各个方面,输出元件包括用于示出图形用户界面(GUI)的显示器805、视觉指示器820(例如,发光二极管)和/或音频换能器825(例如,扬声器)。在一些示例中,移动计算设备800包括振动换能器,用于向用户提供触觉反馈。在又一示例中,移动计算设备800合并输入和/或输出端口,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口)用于向外部设备发送信号或从外部设备接收信号。在又一示例中,移动计算设备800合并外围设备端口840,诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,HDMI端口)用于向外部设备发送信号或从外部设备接收信号。
图8B是示出移动计算设备的一个示例的架构的框图。也就是说,移动计算设备800包含用于实现一些示例的系统(即,体系结构)802。在一个示例中,系统802被实现为能够运行一个或多个应用程序(例如,浏览器、电子邮件、日历、联系人管理器、消息传递客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些示例中,系统802被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。
根据一个方面,一个或多个应用程序850被加载到存储器862中并在操作系统864上或与其相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息传递程序等。系统802还包括存储器862内的非易失性存储区域868。非易失性存储区域868用于存储如果系统802断电则不应该丢失的持久信息。应用程序850可以使用非易失性存储区域868中的信息并且和存储信息在非易失性存储区域868中,诸如电子邮件或电子邮件应用程序使用的其他消息等。同步应用程序(未示出)也驻留在系统802上,并被编程为与驻留在主计算机上的相应同步应用程序交互,以使存储在非易失性存储区域868中的信息与存储在主计算机中的相应信息保持同步。应当意识到,可以将其他应用程序加载到存储器862中并在移动计算设800上运行。
根据一个方面,系统802具有电源870,其被实现为一个或多个电池。根据一个方面,电源870还包括外部电源,例如AC适配器或对电池进行补电或重新充电的电源对接支架。
根据一个方面,系统802包括执行发送和接收射频通信的功能的无线电872。无线电872通过通信运营商或服务提供者促进系统802与“外界”之间的无线连接。在操作系统864的控制下进行去往和来自无线电672的传输。换句话说,无线电872接收的通信可以通过操作系统864传播到应用程序850,反之亦然。
根据一个方面,视觉指示器820用于提供视觉通知和/或音频接口874用于经由音频换能器825产生可听通知。在所示的示例中,视觉指示器820是发光二极管(LED),音频换能器825是扬声器。这些设备可以直接耦合到电源870,使得当被激活时,即使处理器860和其他组件可能关闭以节省电池电量,它们也保持开启由通知机制指示的持续时间。LED可以被编程为无限期地保持开启,直到用户采取行动来指示设备的通电状态。音频接口874用于向用户提供可听信号并从用户接收可听信号。例如,除了耦合到音频换能器825之外,音频接口874还可以耦合到麦克风以接收可听输入,例如以便于电话交谈。根据一个方面,系统802还包括视频接口876,其使得板载相机830的操作能够记录静止图像、视频流等。
根据一个方面,实现系统802的移动计算设备800具有附加特征或功能。例如,移动计算设备800包括附加数据存储设备(可移动和/或不可移动),例如磁盘、光盘或磁带。这种附加存储在图8B中由非易失性存储区域868示出。
根据一个方面,由移动计算设备800生成或捕获并经由系统802存储的数据/信息本地存储在移动计算设备800上,如上所述。根据另一方面,数据存储在设备能经由无线电872或经由移动计算设备800与关联于移动计算设备800的单独计算设备(例如,例如因特网的分布式计算网络中的服务器计算机)之间的有线连接可访问的任何数量的存储介质上。应当意识到,可以经由无线电872或经由分布式计算网络经由移动计算设备800访问这样的数据/信息。类似地,根据一个方面,根据众所周知的数据/信息传输和存储装置,包括电子邮件和协作数据/信息共享系统,这种数据/信息在计算设备之间容易地传输以用于存储和使用。
例如,以上参考根据各方面的方法、系统和计算机程序产品的框图和/或操作图示描述了实现方式。框中记录的功能/动作可以不按任何流程图所示的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能/动作。
本申请中提供的一个或多个示例的描述和说明不旨在以任何方式限制或限制所要求保护的范围。本申请中提供的方面、示例和细节被认为足以传达所有权并使其他人能够制作和使用最佳模式。实现方式不应被解释为限于本申请中提供的任何方面、示例或细节。无论是组合地还是单独地示出和描述,旨在选择性地包括或省略各种特征(结构上的和方法上的)以产生具有特定特征集的示例。已经提供了本申请的描述和说明,本领域技术人员可以设想落入不脱离更广泛范围的本申请中体现的总体发明构思的更广泛方面的精神内的变型、修改和其它示例。
Claims (15)
1.一种用于提高在提供单个地址时可交换地源送供取回的内容的计算效率的方法,包括:
识别要经由CDN(内容分发网络)并与在提供的URL(统一资源定位符)处托管内容资产的云服务相结合地分发的所述内容资产;
根据所述提供的URL创建密钥值;
在所述云服务处托管云URL和源URL处的所述内容资产的子内容资产,其中,所述源URL包括所述密钥值;
有所述云服务创建CDN URL,其中,所述CDN URL指向所述CDN的地址以将所述子内容资产提供给客户端设备,并且所述CDN URL包括所述密钥值;
从所述云服务向客户端设备提供与客户端相关联的认证令牌和所述密钥值;
接收来自所述CDN的授权请求以将子所述内容资产分发给所述客户端设备,所述授权请求包括所述密钥值和所述认证令牌;
验证所述认证令牌;以及
从所述云服务向所述CDN发送授权码,以准许所述CDN将所述子资产分发给所述客户端设备。
2.如权利要求1所述的方法,其中,创建所述密钥值包括:
设置所述授权令牌的到期时间;
产生随机数;以及
对所述到期时间、所述随机数和所述云URL的至少一部分的组合进行散列运算。
3.如权利要求1所述的方法,其中,所述认证令牌包括明文到期,所述明文到期指示所述认证令牌在其之后不再有效的时间。
4.如权利要求1所述的方法,其中,响应于云服务授权所述客户端设备接收所述内容资产,从所述云服务向所述客户端设备提供所述内容资产。
5.如权利要求1所述的方法,还包括:
识别当前经由所述CDN并与所述云服务相结合地分发的、并且将不再经由所述CDN分发的给定子资产;
移除所述给定子资产以便不再由所述云服务在与所述给定子资产相关联的给定源URL处托管;
从所述云服务向所述CDN发送缓存清除命令;以及
使所述认证令牌无效。
6.如权利要求1所述的方法,其中,被组织到库中的多个子内容项共享给定的密钥值。
7.如权利要求1所述的方法,其中,所述云服务被配置为拒绝经由所述源URL对所述子资产的请求,所述请求是从除所述CDN之外的请求方接收的。
8.如权利要求1所述的方法,其中,所述云URL包括:
协议标识符;
主机值;
提供的内部文件路径;以及
所述子资产的资产标识符。
9.一种用于提高在提供单个地址时可交换地源送供取回的内容的计算效率的方法,包括:
由云服务从客户端设备接收对包括子内容资产的父内容资产的请求;
确定CDN是否可用于将所述子内容资产提供给所述客户端设备;
响应于确定所述CDN可用,将指向由所述CDN托管的所述子内容资产的CDN URL引入到所述父内容资产中,其中,所述CDN URL包括到期令牌以及密钥,所述到期令牌指示CDN URL链接在多长时间内有效,所述密钥由所述CDN用于请求来自所述云服务的、将所述子内容资产提供给所述客户端设备的许可;以及
响应于确定所述CDN不可用,将指向由所述云服务托管的所述子内容资产的云URL引入到所述父内容资产中。
10.如权利要求9所述的方法,还包括:
响应于接收到对从所述CDN向所述客户端设备提供所述子内容资产的许可的请求,确定所述到期令牌和所述密钥是否仍然有效,其中,对许可的所述请求包括所述到期令牌和所述密钥;
响应于确定所述到期令牌和所述密钥仍然有效,将所述子内容资产提供给所述CDN;以及
响应于确定所述到期令牌和所述密钥中的至少一个不再仍然有效,拒绝对许可的所述请求。
11.如权利要求10所述的方法,其中,对许可的所述请求是在所述云服务处、在授权URL处接收的,所述授权URL包括:
协议标识符;
主机值;
客户端授权路径;
提供的内部文件路径;
所述子资产的资产标识符;以及
包含所述到期令牌和所述密钥的查询。
12.如权利要求9所述的方法,其中,所述CDN URL被提供给由所述云服务授权的第一客户端设备,并且由所述第一客户端设备提供给第二客户端设备,其中,所述第二客户端设备被准许以经由所述CDN URL访问所述子内容资产,直到所述到期令牌指示所述CDN URL不再有效为止。
13.一种系统,其具有在提供单个地址时可交换地源送供取回的内容的提高的计算效率,所述系统包括:
云服务,其包括处理器和存储器存储设备,所述云服务托管内容资产以供提供给经授权的客户端;以及
内容分发网络(CDN),其包括跨地理区域按层组织的多个处理器和多个存储器存储设备,所述CDN被指定为结合所述云服务而提供所述内容资产,其中,所述CDN使用所述云服务作为对所述内容资产进行缓存及分层的源,其中,所述CDN基于在将所述内容资产分发到所述客户端设备之前、从所述客户端设备接收的请求中所包括的到期令牌来向所述云服务要求授权。
14.如权利要求13所述的系统,其中,由所述CDN从所述客户端设备接收的对所述内容资产的请求包括授权令牌,并且所述CDN还可操作用于:
针对所述授权令牌是否有效而查询所述云服务;
响应于确定所述授权令牌有效,将所述内容资产提供给从其提供了有效授权令牌的所述客户端设备;以及
响应于确定所述授权令牌无效,将错误消息发送到从其提供了无效授权令牌的所述客户端设备。
15.如权利要求14所述的系统,其中,响应于授权所述客户端设备访问所述内容资产,所述云服务将所述授权令牌提供给所述客户端设备。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662385801P | 2016-09-09 | 2016-09-09 | |
US62/385,801 | 2016-09-09 | ||
US15/402,071 | 2017-01-09 | ||
US15/402,071 US10693947B2 (en) | 2016-09-09 | 2017-01-09 | Interchangeable retrieval of sensitive content via private content distribution networks |
PCT/US2017/050000 WO2018048759A1 (en) | 2016-09-09 | 2017-09-05 | Interchangeable retrieval of sensitive content via private content distribution networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109691057A true CN109691057A (zh) | 2019-04-26 |
CN109691057B CN109691057B (zh) | 2021-10-29 |
Family
ID=61561112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780055292.0A Active CN109691057B (zh) | 2016-09-09 | 2017-09-05 | 经由私人内容分发网络可交换地取回敏感内容 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10693947B2 (zh) |
EP (1) | EP3510743B1 (zh) |
CN (1) | CN109691057B (zh) |
WO (1) | WO2018048759A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018006872A1 (zh) * | 2016-07-08 | 2018-01-11 | 腾讯科技(深圳)有限公司 | 一种混合云的接口调用方法及装置 |
US10375154B2 (en) | 2016-07-29 | 2019-08-06 | Microsoft Technology Licensing, Llc | Interchangeable retrieval of content |
US10951627B2 (en) * | 2016-10-14 | 2021-03-16 | PerimeterX, Inc. | Securing ordered resource access |
CA3072956A1 (en) * | 2017-08-14 | 2019-02-21 | Level 3 Communications, Llc | System and method for metro mid-tier mapping in a content delivery network |
US10637846B2 (en) * | 2017-08-30 | 2020-04-28 | Capital One Services, Llc | System and method for cloud-based analytics |
GB201717251D0 (en) * | 2017-10-20 | 2017-12-06 | Palantir Technologies Inc | Serving assets in a networked environment |
FR3075541A1 (fr) * | 2017-12-20 | 2019-06-21 | Orange | Procede de distribution d'un contenu dans un reseau de distribution de contenus, entite d'origine et entites de distribution correspondantes |
CN108768979B (zh) * | 2018-05-17 | 2021-04-16 | 网宿科技股份有限公司 | 企业内网访问的方法、用于企业内网访问的装置及其系统 |
CN109922161B (zh) * | 2019-04-10 | 2021-10-19 | 山东师范大学 | 动态云内容分发网络的内容分发方法、系统、设备及介质 |
CN111629037B (zh) * | 2020-05-14 | 2022-05-27 | 山东师范大学 | 基于协同强化学习的动态云内容分发网络内容放置方法 |
EP3926926B1 (en) * | 2020-06-19 | 2024-02-28 | Sap Se | Method and system for delivering restricted-access resources using a content delivery network |
US11258608B1 (en) * | 2021-05-21 | 2022-02-22 | Contentful GmbH | Systems for secure access to protected content in a content management system |
US11843682B1 (en) * | 2022-08-31 | 2023-12-12 | Adobe Inc. | Prepopulating an edge server cache |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2723033A1 (en) * | 2012-10-22 | 2014-04-23 | Koninklijke KPN N.V. | Token-based validation for segmented content delivery |
US8769614B1 (en) * | 2009-12-29 | 2014-07-01 | Akamai Technologies, Inc. | Security framework for HTTP streaming architecture |
CN104854835A (zh) * | 2013-01-17 | 2015-08-19 | 英特尔Ip公司 | Dash感知网络应用功能(d-naf) |
CN105144725A (zh) * | 2012-12-21 | 2015-12-09 | 阿卡麦科技公司 | 可伸缩的内容交付网络请求处理机制 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108703A (en) | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
US6823377B1 (en) | 2000-01-28 | 2004-11-23 | International Business Machines Corporation | Arrangements and methods for latency-sensitive hashing for collaborative web caching |
US7240100B1 (en) | 2000-04-14 | 2007-07-03 | Akamai Technologies, Inc. | Content delivery network (CDN) content server request handling mechanism with metadata framework support |
US7096266B2 (en) | 2001-01-08 | 2006-08-22 | Akamai Technologies, Inc. | Extending an Internet content delivery network into an enterprise |
WO2002071242A1 (en) | 2001-03-01 | 2002-09-12 | Akamai Technologies, Inc. | Optimal route selection in a content delivery network |
US7149797B1 (en) | 2001-04-02 | 2006-12-12 | Akamai Technologies, Inc. | Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP) |
US7133905B2 (en) | 2002-04-09 | 2006-11-07 | Akamai Technologies, Inc. | Method and system for tiered distribution in a content delivery network |
US20040093419A1 (en) | 2002-10-23 | 2004-05-13 | Weihl William E. | Method and system for secure content delivery |
JP5088969B2 (ja) | 2006-09-06 | 2012-12-05 | アカマイ テクノロジーズ インコーポレイテッド | ハイブリッドcdn−p2pにおけるコンテンツ配信方法 |
CN102047244B (zh) | 2008-04-04 | 2013-02-27 | 第三雷沃通讯有限责任公司 | 在内容分发网络(cdn)中处理长尾内容 |
US8661056B1 (en) | 2008-11-03 | 2014-02-25 | Salesforce.Com, Inc. | System, method and computer program product for publicly providing web content of a tenant using a multi-tenant on-demand database service |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8358660B2 (en) | 2009-11-16 | 2013-01-22 | Verizon Patent And Licensing Inc. | Method and system for providing integrated content delivery |
US9161080B2 (en) | 2011-01-28 | 2015-10-13 | Level 3 Communications, Llc | Content delivery network with deep caching infrastructure |
ES2425626B1 (es) | 2011-05-12 | 2014-06-05 | Telefónica, S.A. | Método para la resolución de dns de peticiones de contenido en un servicio cdn |
US20150207660A1 (en) | 2011-12-12 | 2015-07-23 | Google Inc. | Client-side url redirection |
EP3249546B1 (en) | 2011-12-14 | 2022-02-09 | Level 3 Communications, LLC | Content delivery network |
US9088634B1 (en) | 2012-05-07 | 2015-07-21 | Amazon Technologies, Inc. | Dynamic media transcoding at network edge |
US9246929B2 (en) | 2012-09-07 | 2016-01-26 | Polytechnic Institute Of New York University | Providing a fast, remote security service using hashlists of approved web objects |
US9015212B2 (en) | 2012-10-16 | 2015-04-21 | Rackspace Us, Inc. | System and method for exposing cloud stored data to a content delivery network |
US9634904B2 (en) | 2012-12-13 | 2017-04-25 | Level 3 Communications, Llc | Framework supporting content delivery with hybrid content delivery services |
US9729605B2 (en) | 2012-12-27 | 2017-08-08 | Akamai Technologies Inc. | Mechanism for distinguishing between content to be served through first or second delivery channels |
US9935996B2 (en) | 2013-02-28 | 2018-04-03 | Open Text Sa Ulc | Systems, methods and computer program products for dynamic user profile enrichment and data integration |
US9549038B1 (en) | 2013-08-14 | 2017-01-17 | Amazon Technologies, Inc. | Cacheable resource location selection |
US9648125B2 (en) | 2013-10-04 | 2017-05-09 | Akamai Technologies, Inc. | Systems and methods for caching content with notification-based invalidation |
CN104580177B (zh) | 2014-12-26 | 2018-04-27 | 广州酷狗计算机科技有限公司 | 资源提供方法、装置和系统 |
US9392075B1 (en) | 2015-07-23 | 2016-07-12 | Haproxy Holdings, Inc. | URLs with IP-generated codes for link security in content networks |
US10375154B2 (en) | 2016-07-29 | 2019-08-06 | Microsoft Technology Licensing, Llc | Interchangeable retrieval of content |
-
2017
- 2017-01-09 US US15/402,071 patent/US10693947B2/en active Active
- 2017-09-05 CN CN201780055292.0A patent/CN109691057B/zh active Active
- 2017-09-05 WO PCT/US2017/050000 patent/WO2018048759A1/en unknown
- 2017-09-05 EP EP17771922.6A patent/EP3510743B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8769614B1 (en) * | 2009-12-29 | 2014-07-01 | Akamai Technologies, Inc. | Security framework for HTTP streaming architecture |
EP2723033A1 (en) * | 2012-10-22 | 2014-04-23 | Koninklijke KPN N.V. | Token-based validation for segmented content delivery |
CN105144725A (zh) * | 2012-12-21 | 2015-12-09 | 阿卡麦科技公司 | 可伸缩的内容交付网络请求处理机制 |
CN104854835A (zh) * | 2013-01-17 | 2015-08-19 | 英特尔Ip公司 | Dash感知网络应用功能(d-naf) |
Also Published As
Publication number | Publication date |
---|---|
WO2018048759A1 (en) | 2018-03-15 |
US20180077222A1 (en) | 2018-03-15 |
CN109691057B (zh) | 2021-10-29 |
US10693947B2 (en) | 2020-06-23 |
EP3510743A1 (en) | 2019-07-17 |
EP3510743B1 (en) | 2021-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109691057A (zh) | 经由私人内容分发网络可交换地取回敏感内容 | |
US11399079B2 (en) | Zero-knowledge environment based networking engine | |
CN108293045B (zh) | 本地和远程系统之间的单点登录身份管理 | |
CN105659558B (zh) | 计算机实现的方法、授权服务器以及计算机可读存储器 | |
CN101517557B (zh) | 用于管理虚拟房间内的资源的方法和装置 | |
JP5429912B2 (ja) | 認証システム、認証サーバ、サービス提供サーバ、認証方法、及びプログラム | |
CN104604204B (zh) | 在同步通信中安全地操控服务器证书错误 | |
US8745401B1 (en) | Authorizing actions performed by an online service provider | |
CN113056741A (zh) | 基于分布式账本的简档验证 | |
US10635828B2 (en) | Tokenized links with granular permissions | |
CN107852416A (zh) | 监测计算机网络连接的生命周期 | |
US11456872B2 (en) | Offline protection of secrets | |
CN109565518A (zh) | 可互换的内容取回 | |
CN109587101A (zh) | 一种数字证书管理方法、装置及存储介质 | |
US9516009B2 (en) | Authenticating redirection service | |
CN107409129B (zh) | 使用访问控制列表和群组的分布式系统中的授权 | |
US9977910B2 (en) | Trusted user circles | |
CN110168554A (zh) | 云托管系统中的强资源身份 | |
JP6494990B2 (ja) | サービスアカウントに対するユーザ認証方法とユーザ認証システム、および記憶媒体 | |
CN110532324A (zh) | 基于区块链的公告信息展示方法、装置、设备及存储介质 | |
KR20220156245A (ko) | 서명된 컨텐츠를 전달하는 방법 및 장치 | |
TW202344007A (zh) | 用於在端對端加密通訊平台中觀看使用者存在的隱私友好系統 | |
CN115086041A (zh) | 账号管理方法、装置、电子设备和计算机可读存储介质 | |
CN116800444A (zh) | 账号认证方法、数字资源的兑换方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |