`Case 5:18—md-02834-BLF Document 348-5 Filed 01/18/19 Page 1 of 62
`
`REDACTED VERSION OF
`
`EXHIBIT 13C
`EXHIBIT 13C
`REDACTED VERSION OF
`DOCUMENT SOUGHT TO
`BE SEALED
`
`DOCUMENT SOUGHT TO
`
`BE SEALED
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 2 of 62
`
`Supplemental Infringement Contentions
`RESTRICTED CONFIDENTIAL - CONTAINS SOURCE CODE MATERIAL
`
`Amazon Simple Storage Service (S3) -- U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`In a system in whicha plurality
`1.
`of files are distributed across a
`plurality of computers, a method
`comprising:
`
`is an online storage web service offered by Amazon Web
`Amazon S3 (Simple Storage Service)
`Services that is a system in which a plurality of files are distributed across a plurality of
`computers.
`
`Amazon S83 provides storage through web services interfaces. S3 stores arbitrary objects
`files) up to 5 terabytes in size, each accompanied by up to 2 kilobytes of metadata.
`(computer
`Objects are organized into buckets (each owned by an Amazon Web Services or AWS account),
`and identified within each bucket by a unique, user-assigned key.
`[http://en.wikipedia.org/wiki/Amazon_$3;
`http://aws.amazon.com/s3/].
`
`Multiple amazon servers and multiple client computers are connected through IP connections,
`and each contains processors to send request and to receive request. Both S3 and client
`computers consist of processor in which to send and receive data. Files can be distrubted across
`plurality of computers in a network.
`
`The source-code references are exemplary in nature. The evidence includes butis not limited to the classes, methods and structures
`referenced herein. PersonalWeb reserves the right to supplement
`these contentions with further discovery.
`
`iManage\180229.1
`
`1
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000914
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 3 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`iManage\180229.1
`
`2
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000915
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 4 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`obtaining a name for data file,
`the name being basedatleast in
`part on a given function of the
`data, wherein the data used by the
`given function to determine the
`name comprises the contents of the
`data file; and
`
`Amazon’s $3 obtains a namefora datafile, i.e., the “ETag,” the name being based at least in
`part on a given function of the data, wherein the data used by the given function to determine the
`name comprises the contents of the data file.
`
`When performing a multipart upload, Amazon S3 automatically generates a hash to identify and
`retrieve the data being uploaded.
`[http://awsdocs.s3.amazonaws.com/S3/latest/s3-dg.pdf].
`Objects greater than 5GB in size require the use of the multipart upload API.
`[http://awsdocs.s3.amazonaws.com/S3/latest/s3-dg.pdf].
`
`iManage\180229.1
`
`3
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000916
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 5 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`Common Response Headers
`
`The following table describes response headers that are common to most AWS S3 responses.
`
`Description
`
`|
`
`Content-Length
`
`The length in bytes of the body in the response.
`Type:
`String
`Default: None
`
`Connection
`
`specifies whether the connection to the server is open or closed.
`Type: Enum
`Valid Values: open | close
`Default: None
`
`Date
`
`ETag
`
`The date and time Amazon S3 responded, for example, Wed, 01 Mar 2009
`12:00:00 GMT.
`Type: String
`Default: None
`
`The entity tag is a hash of the object. The ETag only reflects changes to the
`contents of an object, not its metadata. The ETag is determined when an object
`is created. For objects created by the PUT Object operation and the POST Object
`the ETag is a quoted, 32-digit hexadecimal string representing the
`operation,
`digest of the object data. For other objects, the ETag may or may not be an
`MDS digest of the object data.If the ETag is not an MD5 digest of the object data,
`it will contain one or more non-hexadecimal characters and/or will consist of less
`than 32 or more than 32 hexadecimal digits.
`Type: String
`
`CAvernAe
`
`Tha nama of tha carver that crastad tha racnanca
`
`[http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf].
`
`Multipart Uploads:
`
`iManage\180229.1
`
`4
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000917
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 6 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`S3 performs multipart uploads through the generation and use of a an “ETag”, which is a MD5
`it is a MD5 hash, see “common response headers” graphic
`hash (because it is a PUT operation,
`above,) of the data-part, which is required for a later request to complete the multipart upload
`and for Amazon S3 to concatenate the parts together to form a single object.
`And once combined, Amazon S3
`[http://awsdocs.s3.amazonaws.com/S3/latest/s3-dg.pdf].
`responds with an ETag that uniquely identifies the combined data.
`[http://awsdocs.s3.amazonaws.com/S3/latest/s3-dg.pdf].
`
`Multipart uploading is a three-step process: You initiate the upload, you upload the object parts, and after
`you have uploaded all the parts, you complete the multipart upload. Upon receiving the complete multipart
`from the uploaded parts, and you can then access the
`request, Amazon S3 constructs the object
`just as you would any other object in your bucket.
`
`upload
`
`object
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-dg.pdf)
`
`Parts Upload Step
`
`Parts Upload
`
`When uploadinga part,
`
`in addition to the upload ID, you must specify a part number. You can choose
`any part number between 1 and 10,000. A part number uniquely identifies a part and its position in the
`If you upload a new part using the samepart number as a previously uploaded
`object you are uploading.
`part, the previously uploaded part is overwritten. Whenever you upload a part, Amazon S3 returns an
`ETag header in its response. For each part upload, you must record the part number and the ETag value.
`You need to include these values in the subsequent request to complete the multipart upload.
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-dg.pdf)
`
`iManage\180229.1
`
`5
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000918
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 7 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Multipart Upload Completion (or Abort)
`
`When you complete a multipart upload, Amazon S3 creates an object by concatenating parts in ascending
`order based on the part number. If any object metadata was provided in the initiate multipart upload
`request, Amazon S3 associates that metadata with the object. After a successful complete request, the
`parts no longer exist. Your complete multipart upload request must include the upload ID and a list of
`includes an ETag that uniquely
`both part numbers and corresponding ETag values. Amazon S3 response
`identifies the combined object data. This ETag will not necessarily be an MD5 hash of the object data.
`You can optionally abort the multipart upload. After aborting a multipart upload, you cannot upload any
`part using that upload ID again. All storage that any parts from the aborted multipart upload consumed
`is then freed. If any part uploads were in-progress, they can still succeed orfail even after you aborted.
`To free all storage consumed by all parts, you must abort a multipart upload only after all part uploads
`have completed.
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-dg.pdf)
`
`* Note: It is our current understanding that the individual parts uploaded with PUT or POST
`object operations necessarily have an ETag that is the MDS hash ofthe object data (see graphic
`above titled “Common Response Headers,”) however the ETag of the combined object data “will
`not necessarily be an MDS hash ofthe object data.”
`
`iManage\180229.1
`
`6
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000919
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 8 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Sample Request
`The following PUT request uploadsa part (part number1) in a multipart upload. The request
`the upload ID that you get in response to your Initiate Multipart Upload request.
`
`includes
`
`PUT
`
`/my-movie.m2ts?partNumber=1
`éuploadId=VCVsb2FkIE1EIGZvciBlbZZpbm
`HTTP/1.1
`cncyBteS1itb3ZpZS5tMnRzIHVwbG9hZR
`Host:
`example-bucket.s3.amazonaws.com
`1 Nov 2010 20:34:56 GMT
`Date:
`Mon,
`10485760
`Content-Length:
`Content-MD5:
`Authorization:
`
`pUNXr/BjJKK5G2UKvaRRrOA==
`AWS
`VGhpcyBtZXNzYWd1IHNpZ251ZGGieSR1bHZpbmc=
`
`***part data omitted***
`
`Sample Response
`The response includes the ETag header. You need to retain this value for use when you send the Complete
`Multipart Upload request.
`
`HTTP/1.1 200 OK
`x-amz-id-2:
`VvaglLuByRx9e6j50nimru9p04ZVKnJ2027/C1NPcfTWAtRP£TaOFg==
`656c76696e6727732072657175657374
`x-amz-request-id:
`1 Nov 2010 20:34:56 GMT
`Date:
`Mon,
`"b54357faf0632cce46e942fa68356b38"
`ETag:
`Content-Length:
`0
`Connection:
`keep-alive
`Server:
`AmazonS3
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`7
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000920
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 9 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Complete Multipart Upload
`
`Description
`
`This operation completes a multipart upload by assembling previously uploaded parts.
`You first initiate the multipart upload and then uploadall parts using the Upload Parts operation (see
`you call this operation
`Upload Part (p. 171)). After successfully uploading all relevant parts of an upload,
`to complete the upload. Upon receiving this request, Amazon S3 concatenates all the parts in ascending
`order by part numberto create a new object.
`In the Complete Multipart Upload request, you must provide
`the parts list. You must ensure the parts list is complete, this operation concatenates the parts you provide
`in the list. For each part in the list, you must provide the part number and the ETag header value,
`returned
`after that part was uploaded.
`
`Processing of a Complete Multipart Upload request could take Several minutes to complete. After Amazon
`it sends an HTTP response header that specifies a 200 OK response.
`S3 begins processing the request,
`While processing is in progress, Amazon S3 periodically sends whitespace characters to keep the
`from timing out. Because a request could fail after the initial 200 OK response has been sent,
`connection
`is important that you check the response body to determine whether the request succeeded.
`
`it
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`8
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000921
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 10 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Request Elements
`
`Name
`
`CompleteMultipartUpload
`
`Description
`Container for the request.
`
`Required
`
`Yes
`
`Ancestor: None
`Type: Container
`Children: One or more Part elements
`
`Part
`
`Container for elements related to a particular previously
`uploaded
`part.
`
`CompleteMultipartUpload
`Ancestor:
`Type: Container
`Children: PartNumber, ETag
`
`PartNumber
`
`Part number that identifies the part.
`
`ETag
`
`Type:
`
`Ancestor: Part
`Integer
`Entity tag returned when the part was uploaded.
`
`Ancestor: Part
`
`Type: String
`
`Yes
`
`Yes
`
`Yes
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000922
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 11 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Syntax
`
`/ObjectName?uploadid=Uploadid HTTP/1.1
`POST
`BucketName.s3.amazonaws.com
`Host:
`Date: Date
`Content-Length:
`Authorization:
`
`Size
`Signature
`
`<CompleteMultipartUpload>
`<Part>
`<PartNumber>PartNumber</PartNumber>
`<ETaq>ETaq</ETaqg>
`</Part>
`
`</CompleteMultipartUpload>
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`10
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000923
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 12 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Response Elements
`
`Name
`
`Description
`
`CompleteMultipartUploadResult
`
`Container for the response
`Type: Container
`Children: Location, Bucket, Key, ETag
`Ancestors: None
`
`Location
`
`Bucket
`
`Key
`
`ETag
`
`The URI that identifies the newly created object.
`Type: URI
`Ancestors:
`
`CompleteMultipartUploadResult
`The nameof the bucket that contains the newly created object.
`
`Type: String
`
`Ancestors:
`
`CompleteMultipartUploadResult
`
`The object key of the newly created object.
`Type: String
`
`Ancestors:
`
`CompleteMultipartUploadResult
`
`Entity tag that identifies the newly created object's data.
`Objects with different object data will have different entity
`tags. The entity tag is an opaque string.
`Type: String
`
`Ancestors:
`
`CompleteMultipartUploadResult
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`11
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000924
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 13 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Sample Request
`
`The following Complete Multipart Upload request specifies three parts in the
`element.
`
`CompleteMultipartUpload
`
`?uploadId=AAAsb2FkIE1LEIGZvciBlbHZpbmcncyWeeS1tb3ZpZS5tMnRzIR
`
`/example-object
`POST
`HTTP/1.1
`RwbG9hZA
`Host:
`example-bucket.s3.amazonaws.com
`1 Nov 2010 20:34:56 GMT
`Date:
`Mon,
`391
`Content-Length:
`Authorization:
`AWS
`
`AAbbcyBtZXNzYWd1RRRpZ251ZCBieSB1bHZpbmc=
`
`<CompleteMultipartUpload>
`<Part>
`<PartNumber>1</PartNumber>
`<ETag>"a54357aff£0632cce46d942af68356b38"</ETag>
`</Part>
`<Part>
`<PartNumber>2</PartNumber>
`<ETag>"0c78aef83f66abclfale8477£296d394"</ETag>
`</Part>
`<Part>
`<PartNumber>3</PartNumber>
`<ETag>"acbdl8db4cc2f85cedef654fccc4a4d8"</ETag>
`</Part>
`</CompleteMultipartUpload>
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`12
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000925
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 14 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Sample Response
`
`The following response indicates that an object was successfully
`
`assembled.
`
`200 OK
`HTTP/1.1
`x-amz-id-2:
`UuaglLuByRx9e6j50nimru9p04ZVKnJ20z7/C1INPcfTWAtRPf£TaOFg==
`656c76696e6727732072657175657374
`X-amz-request-id:
`1 Nov 2010 20:34:56 GMT
`Date: Mon,
`Connection:
`close
`Server:
`AmazonS3
`
`<?xml version="1.0"
`encoding="UTF-8"?>
`<CompleteMultipartUploadResult
`xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
`
`<Location>http:
`//Example-Bucket.s3.amazonaws.com/Example-Object</Location>
`<Bucket>Example-Bucket</Bucket>
`<Key>Example-Object</Key>
`<ETag>"3858f62230ac3c915£300c664312c11f-9"</ETag>
`</CompleteMultipartUploadResult>
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`13
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000926
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 15 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`iManage\180229.1
`
`14
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000927
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 16 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`in response to a request for the a
`data file, the request including at
`least the name of the particular
`file, causing a copyofthe file to
`be provided from a given one of
`the plurality of computers, wherein
`a copy of the requested file is only
`provided to licensed parties.
`
`receives requests for a data file, the requests including at least the nameof the
`Amazon’s
`particular file, causing a copy of the file to be provided from a given oneof the plurality of
`computers, wherein a copy of the requested file is only provided to licensed parties. This occurs
`when performing steps to copy data, when performing a GETof data with conditional
`and/or when performing a PUT operation with COPY with conditional
`
`parameters,
`
`parameters.
`
`A user can specify data from an existing object as a data source during a multipart upload,
`available to the user are conditional headers which can involve using the ETag to identify
`whether or not to copy certain objects.
`[http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf].
`Upon information and belief, the copy of the requested file is provided only to licensed parties.
`Uploads a part by copying data from an existing object as data source. You specify the data source by
`adding the request header x-amz-copy-source in your request and a byte range by adding the request
`header x-amz-copy-source-range in your
`
`request.
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`15
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000928
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 17 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Syntax
`
`/ObjectName?partNumber=PartNumber&uploadid=Uploadid
`PUL
`BucketName.s3.amazonaws.com
`Host:
`/source bucket/sourceObject
`x-amz-copy-source:
`xX-amz-copy-source-range:bytes=first-last
`X-amz-copy-source-if-match:
`etag
`etag
`X-amz-copy-source-if-none-match:
`x-amz-copy-source-if-unmodified-since:
`x-amz-copy-source-if-modified-since:
`date
`Date:
`Authorization:
`
`time stamp
`time_stamp
`
`Signature
`
`HTTP/1.1
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`16
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000929
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 18 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`The following conditional headers are based onthe object that the x-amz-copy-source header specifies.
`
`X-amz-copy-source-if-match
`
`xX-amz-copy-source-i
`
`f-none-match
`
`x-amz-copy-source-1
`
`f=modi
`
`fied-sinoe
`
`Description
`Perform a copy if the source object entity tag (ETag)
`matches the specified value. If the value does not
`match, Amazon S3 returns an HTTP status code
`412 precondition failed error.
`Type: String
`Default: None
`
`Perform a copy if the source object entity tag (ETag)
`is different than the value specified using this
`If the values match, Amazon S3 returns an
`header.
`HTTP status code 412 precondition failed error.
`Type: String
`Default: None
`
`Perform a copy if the source object is not modified
`after the time specified using this header. If the
`source object is modified, Amazon S3 returns an
`HTTP status code 412 precondition failed error.
`Type: String
`Default: None
`
`Perform a copy if the source object is modified after
`the time specified using this header. If the source
`is not modified, Amazon S3 returns an HTTP
`object
`status code 412 precondition failed error.
`Type: String
`Default: None
`
`Required
`
`No
`
`No
`
`No
`
`No
`
`iManage\180229.1
`
`://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`17
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000930
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 19 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`Similar to performing a multipart upload by copying existing objects, performing a GETof data
`
`makes available similar conditional
`
`parameters.
`
`Amazon Simple Storage Service API Reference
`GET Object
`
`Name
`
`If-Match
`
`Description
`
`Return the object only if its entity tag (Taq) is the same as the one
`specified, otherwise return a 412 (precondition failed).
`Type: String
`
`Required
`
`No
`
`Default: None
`
`Constraints:
`
`None
`
`If-None-Match
`
`Return the object onlyif its entity tag (Taq) is different from the
`one specified, otherwise return a 304 (not modified).
`Type: String
`Default: None
`
`No
`
`Constraints:
`
`None
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`The PUT operation with COPYalso has conditional parameters similar to the ones in the
`pervious discussions.
`
`iManage\180229.1
`
`18
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000931
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 20 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`PUT Object - Copy
`Description
`
`This implementation of the PUT operation creates a copy of an object that is already stored in Amazon S3.
`A PUT copy operation is the same as performing a GET and then a PuT. Adding the request header,
`x-amz-copy-source, makes the PUT operation copy the source object into the destination bucket.
`
`Note
`
`You canstore individual objects of up to 5 TB in Amazon S3. You create a copy of your object
`up to 5 GBin size in a single atomic operation using this API. However, for copying an object
`greater than 5 GB, you must use the multipart upload API. For conceptual
`information on multipart
`upload, go to Uploading Objects Using Multipart Upload in the Amazon S3 Developer Guide.
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`19
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000932
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 21 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Requests
`
`Syntax
`
`/destinationObject HTTP/1.1
`PUT
`destinationBucket.s3.amazonaws.com
`Host:
`/source bucket/sourceObject
`x-amz-copy-source:
`x-amz-metadata-directive:
`metadata directive
`etag
`X-amz-copy-source-if-match:
`etag
`X-amz-copy-source-if-none-match:
`x-amz-copy-source-if-unmodified-since:
`x-amz-copy~source-if-modified-since:
`request metadata>
`Authorization:
`signatureValue
`date
`Date:
`
`time stamp
`time stamp
`
`(http://awsdocs.s3.amazonaws.com/S$3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`20
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000933
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 22 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`xX-amz-copy-source-if-match
`
`IL)
`
`MULINIIVIT INE YUGSL PITaAUTIS
`Copies the object if its entity tag (ETag) matches
`the specified tag; otherwise, the request
`HTTPstatus code error
`(precondition
`Type: String
`Default: None
`This header can be used with
`Constraints:
`x-amz-copy-source-if-unmodified-since,
`but cannot be used with other conditional
`copy
`headers.
`
`returns
`failed).
`
`X-amz-copy-source-if-none-match
`
`Copies the object if its entity tag (ETag)is different
`than the specified ETag; otherwise,
`the request
`returns a 412 HTTP status code error (failed
`condition).
`
`Type: String
`Default: None
`This header can be used with
`Constraints:
`xX-amz-copy-source-if-modified-since,
`but cannot be used with other conditional
`copy
`headers.
`
`(htt
`
`://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`No
`
`No
`
`iManage\180229.1
`
`21
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000934
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 23 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`iManage\180229.1
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000935
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 24 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 1 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`CLAIM 2 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`2. A method as in claim 1
`comprising:
`
`further
`
`All of the statements provided above with respect to claim 1 are incorporated by reference.
`
`using at least the
`determining,
`name, whether a copy of the data
`file is present on a particular one
`of said computers.
`
`Amazon §3’s data replication and conditional GET, PUT, and COPY operations, when Amazon
`S3 creates the “ETag” identifiers, it makes and maintains,
`for a plurality of data items present in
`the system, an association between each of the data items and the “ETag” identifier of each of the
`data items, wherein said accessing a data item accesses a data item via the association.
`Uploads a part by copying data from an existing object as data source. You specify the data source by
`adding the request header x-amz-copy-source in your request and a byte range by adding the request
`header x-amz-copy-source-range in your
`
`request.
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`23
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000936
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 25 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 2 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Syntax
`
`/ObjectName?partNumber=PartNumber&uploadid=Uploadid
`PUL
`BucketName.s3.amazonaws.com
`Host:
`/source
`bucket/sourceObject
`x-amz-copy-source:
`x-amz-copy-source-range:bytes=first-last
`X-amz-copy-source-if-match:
`etag
`etag
`X-amz-copy-source-if-none-match:
`x-amz-copy-source-if-unmodified-since:
`x-amz-copy-source-if-modified-since:
`date
`Date:
`Authorization:
`
`time_stamp
`time_stamp
`
`Signature
`
`HTTP/1.1
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`24
`
`U.S. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000937
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 26 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 2 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`The following conditional headers are based on the object that the x-amz-copy-source header specifies.
`
`Name
`
`Description
`
`x-amz-copy-source-if-match
`
`x-amz-copy-source-i
`
`f-none-match
`
`Performa
`
`copy ifthe source object entity tag (ETag)
`matches the specified value. If the value does not
`match, Amazon S3 returns an HTTP status code
`412 precondition failed error.
`Type: String
`Default: None
`
`Perform a copy if the source object entity tag (ETag)
`is different than the value specified using this
`header. If the values match, Amazon S3 returns an
`failed error.
`HTTP status code 412 precondition
`Type: String
`Default: None
`
`xvamz-cgpy-souros-i
`
`f-unmodi fied-since Perform a copy if the source object is not modified
`after the time specified using this header. If the
`source object is modified, Amazon S3 returns an
`HTTP status code 412 precondition failed error.
`Type: String
`Default: None
`
`x-amz-copy-source-i
`
`f-modi
`
`fied-sinoe
`
`Perform a copy if the source object is modified after
`the time specified using this header. If the source
`is not modified, Amazon S3 returns an HTTP
`object
`status code 412 precondition failed error.
`Type: String
`Default: None
`
`Required
`
`No
`
`No
`
`No
`
`No
`
`iManage\180229.1
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.
`
`25
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000938
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 27 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 2 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Similar to performing a multipart upload by copying existing objects, performing a GET of data
`makes available similar conditional parameters.
`
`Amazon Simple Storage Service API Reference
`GET Object
`
`Name
`
`If-Match
`
`| Description
`
`Return the object onlyif its entity tag (&Tag) is the same as the one
`specified, otherwise return a 412 (precondition failed).
`Type: String
`
`Required
`
`No
`
`Default: None
`
`Constraints:
`
`None
`
`If-None-Match
`
`|
`
`Return the object only if its entity tag (ETaq) is different from the
`one specified, otherwise return a 304 (not modified).
`Type: String
`Default: None
`
`No
`
`Constraints:
`
`None
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`The PUT operation with COPYalso has conditional parameters similar to the ones in the pervious
`
`discussions.
`
`iManage\180229.1
`
`26
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000939
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 28 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 2 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`PUT Object - Copy
`Description
`
`This implementation of the PUT operation creates a copy of an object that is already stored in Amazon S3.
`A PUT copy operation is the same as performing a GET and then a Put. Adding the request header,
`x-amz-copy-source, Makes the PUT operation copy the source object into the destination bucket.
`
`we
`
`Note
`
`You can store individual objects of up to 5 TB in Amazon S3. You create a copy of your object
`up to 5 GBin size in a single atomic operation using this API. However, for copying an object
`greater than 5 GB, you must use the multipart upload API. For conceptual
`information on multipart
`upload, go to Uploading Objects Using Multipart Upload in the Amazon S3 Developer Guide.
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\180229.1
`
`27
`
`US. Patent No. 6,928,442
`
`HIGHLY CONFIDENTIAL — SOURCE CODE
`
`AMZ_PWT_00000940
`
`
`
`Case 5:18-md-02834-BLF Document 348-5 Filed 01/18/19 Page 29 of 62
`
`U.S. PATENT NO. 6,928,442
`
`Issued August 9, 2005
`
`Enforcement and Policing of Licensed Content Using Content-Based Identifiers
`
`CLAIM 2 ‘442 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Requests
`
`Syntax
`
`/destinationObject HTTP/1.1
`PUT
`destinationBucket.s3.amazonaws.com
`Host:
`x-amz-copy-source:
`/source_bucket/sourceObject
`x-amz-metadata-directive:
`metadata directive
`etag
`xX-amz-copy-source-if-match:
`etag
`x-