`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 1 of 79
`Case 5:18—md-02834-BLF Document 340-2 Filed 01/09/19 Page 1 of 79
`
`EXHIBIT 2A
`EXHIBIT 2A
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 2 of 79
`
`Claim Chart for Amazon Simple Storage Service (S3) U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`24. A computer-implemented
`method implementedat least in
`part by hardware comprising one
`or more processors, the method
`comprising:
`
`(a) using a processor, receiving at
`a first computer from a second
`computer, a request regarding a
`particular data item, said request
`including at least a content-
`namefor the particular
`dependent
`data item, the
`content-dependent
`name being based, at least in part,
`on at least a function of the data in
`the particular data item, wherein
`the data used by the function to
`determine the
`content-dependent
`name comprises at least some of
`the contents of the particular data
`item, wherein the function that
`was used comprises a message
`
`iManage\18%0232.1
`
`Although a review of Defendant’s source code is necessary to confirm, Plaintiff believes that
`is an online storage web service offered by Amazon Web
`Amazon S3 (Simple Storage Service)
`Services that performs a computer-implemented method implementedat least in part by
`comprising one or more processors.
`
`hardware
`
`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/].
`
`Although a review of Defendant’s source codeis necessary to confirm, Plaintiff believes that
`Amazon’s S83, using a processor, receives at a first computer (Amazon’s servers) from a second
`(an end user’s computer), a request regarding a particular data item, said request
`computer
`including at least a content-dependent name (an “ETag’’) for the particular data item, the content-
`name being based, at least in part, on at least a function of the data in the particular
`dependent
`data item (i.e., 1t is a hash), wherein the data used by the function to determine the content-
`dependent name comprises at least some ofthe contents ofthe particular data item, wherein the
`function or a hash function, and wherein two
`function that was used comprises a message digest
`identical data items will have the same content-dependent name.
`
`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].
`
`1
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005848
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 3 of 79
`
`CLAIM 24 ‘310 PATENT
`
`function or a hash function,
`digest
`and wherein two identical data
`items will have the same content-
`dependent name;
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`Amazon Simple Storage Service (S3)
`Common Response Headers
`
`The following table describes response headers that are common to most AWS S3 responses.
`
`Name
`
`Description
`
`Content-Length
`
`The length in bytes of the body in the
`Type: String
`
`response.
`
`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,
`12:00:00 GMT.
`
`for example, Wed, 01 Mar 2009
`
`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 whenan 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,
`MD5 digest of the object data. For other objects,
`the ETag may or may not be an
`MD5 digest of the object data. If the ETag is not an MD5 digestof the object data,
`characters and/or will consist of less
`
`it will contain one or more non-hexadecimal
`than 32 or more than 32 hexadecimal digits.
`Type: String
`
`CAvweanaw
`
`Tha nama af tha carver that sraatad tha
`
`racnanea
`
`[http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf].
`
`Multipart Uploads:
`
`iManage\18%0232.1
`
`2
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005849
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 4 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`S3 performs multipart uploads through the generation and use of a an “ETag”, which is a MD5
`hash (becauseit is a PUT operation,it is a MD5 hash, see “common response headers” graphic
`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: Youinitiate 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
`upload request, Amazon S3 constructs the object from the uploaded parts, and you can then access the
`just as you would any other object in your bucket.
`object
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-dg.pdf)
`
`Parts Upload Step
`
`Parts Upload
`
`When uploading a 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 same part numberas a previously
`object you are uploading.
`uploaded
`the previously uploaded partis overwritten. Whenever you upload a part, Amazon S3 returns an
`part,
`ETag headerin its response. For each part upload, you must record the part number and the ETag value.
`You needto include these values in the subsequent request to complete the multipart upload.
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-dg.pdf)
`
`iManage\18%0232.1
`
`3
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005850
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 5 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 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 providedin the initiate multipart upload
`request, Amazon S3 associates that metadata with the object. After a successful complete request,
`parts no longer exist. Your complete multipart upload request must include the upload ID and a list of
`both part numbers and corresponding ETag values. Amazon S3 response includes an ETag that uniquely
`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 consumedbyall parts, you must abort a multipart upload only after all part uploads
`have completed.
`
`the
`
`(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 of the object data (see graphic
`above titled “Common Response Headers,”) however the ETag of the combined object data “will
`not necessarily be an MDS hashofthe object data.”
`
`iManage\18%0232.1
`
`4
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005851
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 6 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Sample Request
`The following PUT request uploadsa part (part number 1) 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
`cncyBteS1tb3ZpZS5tMnRzIHVwbG9hZR
`Host:
`example-bucket.s3.amazonaws.com
`1 Nov 2010 20:34:56 GMT
`Date:
`Mon,
`10485760
`Content-Length:
`Content-MD5:
`pUNXr/BjJKK5G2UKvaRRrOA==
`Authorization:
`VGhpcyBtZXNzYWd1IHNpZ251ZGGieSR1bHZpbmc=
`AWS
`
`***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.
`
`VvaglLuByRx9e6j50nimru9p04ZVKnJ202z7/C1NPcfTWAtRPf£TaOFg==
`
`200 OK
`HTTP/1.1
`x-amz-id-2:
`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\18%0232.1
`
`5
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005852
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 7 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 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
`Upload Part (p. 171)). After successfully uploading all relevant parts of an upload, you call this operation
`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
`it is important that you check the response body to determine whether the request succeeded.
`
`(http://awsdocs.s3.amazonaws.com/§$3/latest/s3-api.pdf)
`
`iManage\18%0232.1
`
`6
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005853
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 8 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Request Elements
`
`Name
`
`CompleteMultipartUpload
`
`Description
`Container for the request.
`
`Required
`
`Yes
`
`None
`Ancestor:
`Type: Container
`Children: One or more Part elements
`
`Part
`
`Container for elements related to a particular
`uploaded part.
`
`previously
`
`Yes
`
`CompleteMultipartUpload
`Ancestor:
`Type: Container
`Children: PartNumber, ETag
`
`PartNumber
`
`Part number that identifies the part.
`
`ETag
`
`Ancestor: Part
`Integer
`Type:
`Entity tag returned when the part was uploaded.
`
`Ancestor: Part
`Type: String
`
`Yes
`
`Yes
`
`(http://awsdocs.s3.amazonaws.com/§$3/latest/s3-api.pdf)
`
`iManage\18%0232.1
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005854
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 9 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Syntax
`
`/ObjectName?uploadid=UploadiId HTTP/1.1
`POST
`Host:
`BucketName.s3.amazonaws.com
`Date: Date
`Size
`Content-Length:
`Authorization: Signature
`
`<CompleteMultipartUpload>
`<Part>
`<PartNumber>PartNumber</PartNumber>
`<ETaq>ETagq</ETag>
`</Part>
`
`</CompleteMultipartUpload>
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\18%0232.1
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005855
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 10 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 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 name of 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\18%0232.1
`
`9
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005856
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 11 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 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>"a54357af£0632cce46d942af68356b38"</ETag>
`</Part>
`<Part>
`<PartNumber>2</PartNumber>
`<ETag>"0c78aef83f66abclfale8477£296d394"</ETag>
`</Part>
`<Part>
`<PartNumber>3</PartNumber>
`8db4cc2f85cedef654fccc4a4d8"</ETag>
`<ETag>"acbdl1
`</Part>
`</CompleteMultipartUpload>
`
`(http://awsdocs.s3.amazonaws.com/§$3/latest/s3-api.pdf)
`
`iManage\18%0232.1
`
`10
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005857
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 12 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 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/C1NPc£TWAtRP£TaOFg==
`X-amz-request-id:
`656c¢76696e6727732072657175657374
`1 Nov 2010 20:34:56 GMT
`Date: Mon,
`Connection:
`close
`Server:
`Amazons3
`
`<?xml version="1.0"
`encoding="UTF-8"?>
`xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
`<CompleteMultipartUploadResult
`
`<Location>http:
`//Example-Bucket.s3.amazonaws.com/Example-Object</Location>
`<Bucket>Example-Bucket</Bucket>
`<Key>Example-Object</Key>
`<ETag>"3858f62230ac3c915f300c664312c11f-9"</ETag>
`</CompleteMultipartUploadResult>
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`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].
`
`iManage\18%0232.1
`
`11
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005858
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 13 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`adding the request header x-amz-copy-source in your request anda byte range by adding the request
`Uploads a part by copying data from an existing object as data source. You specify the data source by
`header x-amz-copy-source-range in your
`
`request.
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`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\18%0232.1
`
`12
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005859
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 14 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 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
`
`if
`
`ifFied-si
`
`x-amz—copy~source—1
`
`f-modi
`
`fFied-sinoe
`
`Description
`
`Perform a copyif 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 copyif the source object entity tag (ETag)
`is different than the value specified using this
`header. If the values match, Amazon S3 returns an
`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 copyif the source object is modified after
`the time specified using this header. If the source
`object is not modified, Amazon S3 returns an HTTP
`status code 412 precondition failed error.
`Type: String
`Default: None
`
`Required
`
`No
`
`No
`
`No
`
`No
`
`iManage\18%0232.1
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`13
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005860
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 15 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 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
`
`If-None-Match
`
`Description
`
`Return the object onlyif its entity tag (2Tag) is the same as the one
`specified, otherwise return a 412 (precondition failed).
`Type: String
`Default: None
`
`Required
`
`No
`
`Constraints: None
`
`Return the object onlyif its entity tag (ETaqg) 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 HEAD operation retrieves metadata from an object without returning the object itself.
`This
`operation is useful if you're only interested in an object's metadata. The HEAD operation also
`has conditional parameters similar to the ones in the pervious discussions.
`
`iManage\18%0232.1
`
`14
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005861
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 16 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`Amazon Simple Storage Service API Reference
`HEAD Object
`
`Name
`
`If-Unmodi
`
`fied-Since
`
`Description
`
`Return the object only if it has not been modified since the specified
`time, otherwise return a 412 (precondition failed).
`Type: String
`
`Required
`
`No
`
`Default: None
`
`Constraints:
`
`None
`
`If-Match
`
`If-None-Match
`
`Return the object only if its entity tag (Tag) is the same as the one
`specified, otherwise return a 412 (precondition failed).
`Type: String
`Default: None
`
`Constraints:
`
`None
`
`Return the object onlyif its entity tag (ETag)is different from the
`one specified, otherwise return a 304 (not modified).
`Type: String
`Default: None
`
`No
`
`No
`
`Constraints:
`
`None
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`The PUT operation with COPY also has conditional parameters similar to the ones in the
`pervious discussions.
`
`iManage\18%0232.1
`
`15
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005862
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 17 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 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 GB in 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\18%0232.1
`
`16
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005863
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 18 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 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
`metadata directive
`x-amz-metadata-directive:
`X-amz-copy-source-if-match:
`etag
`x-amz-copy-source-if-none-match:
`etag
`xX-amz-copy-source-if-unmodified-since:
`x-amz-copy-source-if-modified-since:
`<request metadata>
`Authorization:
`signatureValue
`date
`Date:
`
`time stamp
`time
`s
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`iManage\18%0232.1
`
`17
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005864
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 19 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`xX-amz-copy-source-if-match
`
`IZ)
`
`VULIITIIVUIT
`
`INGSYUGCSL PITAUTIS
`Copies the object if its entity tag (ETag) matches
`the request
`returns
`the specified tag; otherwise,
`a 412 HTTP status code error (precondition failed).
`Type: String
`Default: None
`Constraints: This header can be used with
`x-amz-copy-source-if-unmodified-since,
`but cannot be used with other conditional copy
`headers.
`
`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
`Constraints: This header can be used with
`x-amz-copy-source-if-modified-since,
`but cannot be used with other conditional copy
`headers.
`
`No
`
`No
`
`(b)
`
`in response to said request:
`
`(i) causing the
`name of the particular data item to
`be compared to a plurality of
`
`content-dependent
`
`values;
`
`iManage\18%0232.1
`
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`See, step (a) above.
`As discussed abovein step (a), Amazon
`causes the content-dependent name of the particular
`data item (the “ETag’’) to be compared to a plurality of values (other “ETags’’).
`
`18
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005865
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 20 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 24 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`(ji) hardware in combination with
`software determining whether or
`not access to the particular data
`item is unauthorized based on
`whether the
`content-dependent
`name of the particular data item
`corresponds to at least one of said
`plurality of values, and
`
`based on said determining in
`step (11), not allowing the
`particular data item to be provided
`computer if it is determined that
`to or accessed by the second
`access to the particular data item 1s
`not authorized.
`
`CLAIM 29 ‘310 PATENT
`29. The methodof claim 24
`wherein the data used by the
`function to determine the content-
`name ofthe particular
`dependent
`data item comprises only the
`contents of the particular data
`
`iManage\18%0232.1
`
`As discussed above in step (a), and based upon information and belief, Amazon S3 uses
`hardware in combination with software to determine whether or not access to the particular data
`item is unauthorized based on whether the content-dependent name of the particular data item
`corresponds to at least one of said plurality of values.
`
`As discussed above in step (a), and based upon information and belief, Amazon $3 does not
`allow a particular data item to be provided to or accessed by the second computer ifit is
`determined that access to the particular data item is not authorized.
`
`Amazon Simple Storage Service (S3)
`
`All of the statements provided above with respect to claim 24 are incorporated by reference.
`
`Although review of Defendant’s source code is necessary to confirm, Plaintiff believes that the
`data used by the function to determine the content dependent name of the particular data item
`comprises only the contents of the particular data item.
`
`19
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005866
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 21 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 29 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`item.
`
`Common Response Headers
`
`The following table describes response headers that are common to most AWS S3 responses.
`
`Name
`
`Description
`
`Content-Length
`
`The length in bytes of the body in the
`Type: String
`
`response.
`
`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,
`12:00:00 GMT.
`
`for example, Wed, 01 Mar 2009
`
`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 whenan 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,
`MD5 digest of the object data. For other objects,
`the ETag may or may not be an
`MD5 digest of the object data.If the ETag is not an MD5 digestof the object data,
`characters and/or will consist of less
`
`it will contain one or more non-hexadecimal
`than 32 or more than 32 hexadecimal digits.
`Type: String
`
`Tha nama af tha carver that eraatad tha
`CAweraw
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`racnanea
`
`iManage\18%0232.1
`
`20
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005867
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 22 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 32 ‘310 PATENT
`
`32. The method of claim 24
`wherein the data used by the
`function to determine the content-
`dependent name of the particular
`data item comprises ofall of the
`contents of the particular data
`item.
`
`Amazon Simple Storage Service (S3)
`All of the statements provided above with respect to claim 24 are incorporated by reference.
`
`Although review of Defendant’s source code is necessary to confirm, Plaintiff believes that the
`data used by the function to determine the content dependent name of the particular data item
`comprises all of the contents of the particular data item.
`
`iManage\18%0232.1
`
`21
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005868
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 23 of 79
`
`CLAIM 32 ‘310 PATENT
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`Amazon Simple Storage Service (S3)
`Common Response Headers
`
`The following table describes response headers that are common to most AWS S3 responses.
`
`Name
`
`Description
`
`Content-Length
`
`The length in bytes of the body in the
`Type: String
`
`response.
`
`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 whenan 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,
`MD5 digest of the object data. For other objects,
`the ETag may or may not be an
`MD5 digest of the object data.If the ETag is not an MD5 digest of the object data,
`characters and/or will consist of less
`
`it will contain one or more non-hexadecimal
`than 32 or more than 32 hexadecimal digits.
`Type: String
`
`Tha nama of tha carver that eraatad tha racnaneca
`(http://awsdocs.s3.amazonaws.com/S3/latest/s3-api.pdf)
`
`CAwreaAw.
`
`iManage\18%0232.1
`
`22
`
`U.S. Patent No.
`
`7,802,310
`
`AMZ_PWT_00005869
`
`
`
`Case 5:18-md-02834-BLF Document 340-2 Filed 01/09/19 Page 24 of 79
`
`U.S. PATENT NO. 7,802,310
`
`Issued September 21, 2010
`
`Controlling Access To Data In A Data Processing System
`
`CLAIM 70 ‘310 PATENT
`
`Amazon Simple Storage Service (S3)
`
`computers,
`
`70. A computer-
`implemented method
`operable in a system which
`includes a network of
`the system
`implemented at least in part
`by hardware including at
`least one processor,
`the
`method comprising the steps
`of:
`
`in responseto a request at a
`first computer, from another
`computer, said request
`comprising at least a
`identifier for
`content-based
`a particular data item,
`the
`identifier for
`content-based
`the particular data item
`being basedat least in part
`on a given function of at
`least some data which
`comprise the contents of the
`particular data item, wherein
`the given function
`comprises a message digest
`
`iManage\18%0232.1
`
`Although a review of Defendant’s source code is necessary to confirm, Plaintiff believes that Amazon
`is an online storage web service offered by Amazon Web Services that is a
`S3 (Simple Storage Service)
`device operable in a network of computers, the device comprising hardware,
`including at least one
`processor and memory.
`
`provides storage through web services interfaces. S3 stores arbitrary objects (computer
`Amazon
`files) up to 5 terabytes in size, each accompanied by up to 2 kilobytes of metadata. 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_S3;
`http://aws.amazon.com/s3/].
`
`Although a review of Defendant’s source code is necessary to confirm, Plaintiff believes that Amazon
`S3 receives from another device in the network (e.g., an end user or another Amazon S3 server),
`requests comprising a digital identifier for a particular sequence of bits (an ‘““ETag”’), the digital
`identifier being based, at least in part, on a given function ofat least someof the bits in the particular
`sequence of bits, wherein the given function comprises a h