国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Amazon S3簡(jiǎn)介

這篇具有很好參考價(jià)值的文章主要介紹了Amazon S3簡(jiǎn)介。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言:

這段時(shí)間來到了某大數(shù)據(jù)平臺(tái),做平臺(tái)技術(shù)底座封裝和一些架構(gòu)等等,有結(jié)構(gòu)化數(shù)據(jù)也有非結(jié)構(gòu)數(shù)據(jù),涉及到很多技術(shù),自己也私下花時(shí)間去研究了很多,有很多純技術(shù)類的還是需要梳理并記錄,鞏固以及復(fù)習(xí)。一個(gè)項(xiàng)目用到了幾個(gè)云存儲(chǔ),其中就包括Amazon S3,這邊就學(xué)習(xí)并記錄和復(fù)習(xí)一下。

Amazon S3簡(jiǎn)介

Amazon 最早推出的兩項(xiàng)云服務(wù):EC2 和 S3。

  • Amazon S3:Amazon Simple Storage Service(亞馬遜簡(jiǎn)易存儲(chǔ)服務(wù));
  • EC2 :Elastic Compute Cloud(彈性計(jì)算云,即云中的虛擬服務(wù)器);
  • Amazon S3支持REST風(fēng)格,即通過GET、PUT、DELETE、POST、PATCH操作服務(wù)端的資源;
  • Amazon S3 操作:Service,Buckets和Objects。
  • Service 只包括 GET 操作,就是返回所有的 Buckets 的列表。
  • Object 顧名思義,是指存儲(chǔ)在云端的文件,值得注意的是,S3 中并沒有明確的文件夾的概念,而是通過指定 object 的路徑來實(shí)現(xiàn),比如說,object 可以為 “photos/1.jpg”。
  • Bucket 擁有全局名,名稱由用戶定義,用來存放 Object,由于是全局名,所以要確保名字是別人沒用過的。

S3 Http request headers

具體可以查看亞馬孫官網(wǎng)

訪問 Web 服務(wù)時(shí),Http request headers 需要一些參數(shù)。主要包括:

  • Date:當(dāng)前 UTC 時(shí)間,形式為 “Wed, 01 Mar 2009 12:00:00 GMT”。
  • Content-Length: 當(dāng)對(duì) Object 進(jìn)行操作的時(shí)候,返回內(nèi)容的長(zhǎng)度,注意不要包括 headers 中的內(nèi)容。
  • Content-MD5:用 base64 編碼文件內(nèi)容的 MD5 值。
  • Content-Type:資源的類型,比如:text/plain。
  • Host:Get Service 時(shí)為“ s3.amazonaws.com”。在對(duì) bucket 和 object 進(jìn)行操作時(shí),例如bucket的名字是“bucketname”,那么 Host
    就是“bucketname.s3.amazonaws.com”。
  • x-amz-meta- 和 x-am- 開頭的:包括 Amazon 定義的一些元數(shù)據(jù)和一些特定的 header。后面如果出現(xiàn)會(huì)提到。
  • Authorization:這個(gè)是最重要的,主要作用是簽名,Amazon 根據(jù)的請(qǐng)求計(jì)算出一個(gè)簽名值和這里計(jì)算的簽名值進(jìn)行比對(duì),只有相同時(shí),訪問才是合法的。接下來對(duì) Authorization 的計(jì)算方法進(jìn)行詳述。

Amazon S3簡(jiǎn)介

Authorization 的計(jì)算方法

根據(jù)亞馬遜Amazon 文檔說明:

Authorization = "AWS" + " " + AWSAccessKeyId + ":" + Signature;

Signature = Base64( HMAC-SHA1( UTF-8-Encoding-Of(YourSecretAccessKey), UTF-8-Encoding-Of( StringToSign ) ) );

StringToSign = HTTP-Verb + "\n" +
	Content-MD5 + "\n" +
	Content-Type + "\n" +
	Date + "\n" +
	CanonicalizedAmzHeaders +
	CanonicalizedResource;

CanonicalizedResource = [ "/" + Bucket ] +
	<HTTP-Request-URI, from the protocol name up to the query string> +
	[ subresource, if present. For example "?acl", "?location", or "?logging"];

CanonicalizedAmzHeaders = <described below>
  • Authorization 是由”AWS {0}:{1}“組成的,第0個(gè)參數(shù)為你的 Access Key ID,需要注冊(cè)了 AWS 之后得到,AWS
    注冊(cè);第1個(gè)參數(shù)是計(jì)算出來的簽名值。
  • 簽名值的計(jì)算方法是對(duì)一個(gè) UTF-8 的字符串,用你的 Secret Access Key(同樣在 Access Key ID 處獲?。┻M(jìn)行 SHA1 加密。
  • StringToSign 字符串也需要滿足一定的格式。如上所示,第一行是你的操作名,應(yīng)該為 PUT、GET、DELETE、HEAD 和 POST 中的一種。第二行是內(nèi)容的 MD5 值的 base64 編碼,和 headers 中的 Content-MD5
    值應(yīng)保持一致。第三行是Content-Type,同樣需要和headers中的一致。第四行 Date,和 headers 中的 Date
    一致。
  • 需要說明的是 CanonicalizedAmzHeaders 和 CanonicalizedResource。
  • CanonicalizedAmzHeaders 就是把 headers 中的 x-amz- 開頭的作為 key 轉(zhuǎn)化為小寫并按順序排列,key 和 value 之間用冒號(hào)相連,用換行符“\n”把它們給連接起來。

比如說 headers 中有:

X-Amz-Meta-ReviewedBy: joe@johnsmith.net 
X-Amz-Meta-ReviewedBy: jane@johnsmith.net 
X-Amz-Meta-FileChecksum: 0x02661779 
X-Amz-Meta-ChecksumAlgorithm: crc32

那么CanonicalizedAmzHeaders就是:

x-amz-meta-checksumalgorithm:crc32\n
x-amz-meta-filechecksum:0x02661779\n
x-amz-meta-reviewedby:joe@johnsmith.net,jane@johnsmith.net
  • CanonicalizedResource 是指規(guī)范化的資源。
  • 如果訪問資源沒有指定 bucket,那么就是“/”;
  • 如果包括 bucket,而不包括 object,那就是“/bucket_name/”,注意前后的“/”不要落了;
  • 如果既包括 bucket,也包括 object,那么就是“/bucket_name/object_name”;
  • 另外,有時(shí)候比如是訪問 bucke t的 acl(訪問控制列表 acess control list)時(shí),object_name 就是 ?acl,因此這時(shí) CanonicalizedResource就是“/bucket_name/?acl”,訪問 object 的 acl
    時(shí),CanonicalizedResource 就是“/bucket_name/object_name?acl”。
  • 需要說明的是,如果計(jì)算出的 CanonicalizedAmzHeaders 不為空時(shí),要確保 CanonicalizedAmzHeaders 和 CanonicalizedResource 之間有換行符“\n”連接。

Amazon S3 REST API

Service

對(duì) Service的 操作只包括 Get,即獲取用戶所有的 Buckets 列表。Request headers 除了通用的,沒有其他的內(nèi)容。比如

GET / HTTP/1.1
Host: s3.amazonaws.com
Date: date
Authorization: signatureValue

返回的 XML 中包括 Owner 和各個(gè) Buckets,比如:

<?xml version="1.0" encoding="UTF-8"?>
<ListAllMyBucketsResult xmlns="http://doc.s3.amazonaws.com/2006-03-01">
  <Owner>
    <ID>bcaf1ffd86f461ca5fb16fd081034f</ID>
    <DisplayName>webfile</DisplayName>
  </Owner>
  <Buckets>
    <Bucket>
      <Name>quotes</Name>
      <CreationDate>2006-02-03T16:45:09.000Z</CreationDate>
    </Bucket>
    <Bucket>
      <Name>samples</Name>
      <CreationDate>2006-02-03T16:41:58.000Z</CreationDate>
    </Bucket>
  </Buckets>
</ListAllMyBucketsResult>

Amazon S3簡(jiǎn)介

Buckets

由于項(xiàng)目中只用到了 Buckets 的 PUT、GET、DELETE,關(guān)于 acl、lifecycle、policy 等;

PUT Bucket

需要說明的是,在 request headers 可以加入 bucket 的權(quán)限控制,即指定 x-amz-acl,合法的值包括:private,public-read、public-read-write、authenticated-read、bucket-owner-read、bucket-owner-full-control,從名字就可以看出具體的含義。

  • 在 request body 中可以包括位置信息,即用戶期望 Bucket 放置在 Amazon 的哪個(gè)數(shù)據(jù)中心。
  • 默認(rèn)為 US Standard,其他數(shù)據(jù)中心包括 US West (Oregon) Region、US West (Northern California) Region、EU (Ireland) Region、Asia Pacific (Singapore) Region、Asia Pacific (Tokyo) Region、South America (Sao Paulo) Region。
  • 對(duì)于我們中國(guó)用戶來說,離得最近的是東京的數(shù)據(jù)中心。不過在 body 中內(nèi)容中,這七個(gè)數(shù)據(jù)中心寫成:‘EU’、 ‘eu-west-1’、‘us-west-1’、 ‘us-west-2’、‘a(chǎn)p-southeast-1’、‘a(chǎn)p-northeast-1’ 和 ‘sa-east-1’。

比如請(qǐng)求如下:

PUT / HTTP/1.1
Host: BucketName.s3.amazonaws.com
Content-Length: length
Date: date
Authorization: signatureValue

<CreateBucketConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
  <LocationConstraint>BucketRegion</LocationConstraint> 
</CreateBucketConfiguration>

GET Bucket

  • Get Bucket 主要是列出這個(gè) Bucket 下所有的 objects。值得提的是四個(gè)參數(shù) Prefix、Marker、MaxKeys 和 Delimiter,利用這四個(gè)參數(shù),可以達(dá)到多種效果。
  • 首先是 Prefix,它表示這個(gè) Bucket 中返回的 Object 以這個(gè)值為開頭。Marker 表示,返回這個(gè)值以后的 Objects,比如說第一次調(diào)用沒有返回全部結(jié)果,則把第一次調(diào)用返回的 Objects 的最后一個(gè)作為 Maker 調(diào)用,以返回其以后的
    Objects。MaxKeys 返回單次請(qǐng)求返回的最大 Objects 數(shù),默認(rèn)為 1000。Delimiter 表示分隔符,是在設(shè)置了
    Prefix 之后,能夠返回共同的 Prefix(在結(jié)果中為 CommonPrefix)。
  • 因此,通過設(shè)置 MaxKeys和Marker可以達(dá)到翻頁(yè)效果,每次返回的最后一個(gè) Object 作為下一次請(qǐng)求的 Marker,在返回值中,如果 IsTruncated 為 true,那么表示還有下一頁(yè)。此外,通過設(shè)置 Prefix 和將
    Delimiter 設(shè)為”/“,可以達(dá)到返回某個(gè)文件夾下所有內(nèi)容的效果,其中 CommonPrefix 下的 Prefix
    表示文件夾路徑,而每個(gè) Contents 中是 Object 的信息。
GET ?prefix=N&marker=Ned&max-keys=40 HTTP/1.1
Host: quotes.s3.amazonaws.com
Date: Wed, 01 Mar  2009 12:00:00 GMT
Authorization: AWS AKIAIOSFODNN7EXAMPLE:xQE0diMbLRepdf3YB+FIEXAMPLE=

返回結(jié)果為:

HTTP/1.1 200 OK
x-amz-id-2: gyB+3jRPnrkN98ZajxHXr3u7EFM67bNgSAxexeEHndCX/7GRnfTXxReKUQF28IfP
x-amz-request-id: 3B3C7C725673C630
Date: Wed, 01 Mar  2009 12:00:00 GMT
Content-Type: application/xml
Content-Length: 302
Connection: close
Server: AmazonS3

<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Name>bucket</Name>
    <Prefix/>
    <Marker/>
    <MaxKeys>1000</MaxKeys>
    <IsTruncated>false</IsTruncated>
    <Contents>
        <Key>my-image.jpg</Key>
        <LastModified>2009-10-12T17:50:30.000Z</LastModified>
        <ETag>"fba9dede5f27731c9771645a39863328"</ETag>
        <Size>434234</Size>
        <StorageClass>STANDARD</StorageClass>
        <Owner>
            <ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID>
            <DisplayName>mtd@amazon.com</DisplayName>
        </Owner>
    </Contents>
    <Contents>
       <Key>my-third-image.jpg</Key>
         <LastModified>2009-10-12T17:50:30.000Z</LastModified>
        <ETag>"1b2cf535f27731c974343645a3985328"</ETag>
        <Size>64994</Size>
        <StorageClass>STANDARD</StorageClass>
        <Owner>
            <ID>75aa57f09aa0c8caeab4f8c24e99d10f8e7faeebf76c078efc7c6caea54ba06a</ID>
            <DisplayName>mtd@amazon.com</DisplayName>

Objects

PUT Object

PUT Object 基本操作類似,在 Http body 中添加 Object 的內(nèi)容,這里就需要計(jì)算 Content-Type 等值。與
PUT Bucket 類似,可以在 Http headers 中加入 x-amz-acl,以控制 Object 的權(quán)限。

GET Object 在 GET Object 時(shí),Response headers 中會(huì)包括這個(gè) Object 的相關(guān)信息,除了
Content-Length 和 Content-Type 等,Etag 其實(shí)就是內(nèi)容的 MD5 后的16進(jìn)制的字符串。而 Response
body 中就是文件的內(nèi)容。文章來源地址http://www.zghlxwxcb.cn/news/detail-401631.html

到了這里,關(guān)于Amazon S3簡(jiǎn)介的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Amazon S3 對(duì)象存儲(chǔ)Java API操作記錄(Minio與S3 SDK兩種實(shí)現(xiàn))

    Amazon S3 對(duì)象存儲(chǔ)Java API操作記錄(Minio與S3 SDK兩種實(shí)現(xiàn))

    今年(2023年) 2月的時(shí)候做了個(gè)適配Amazon S3對(duì)象存儲(chǔ)接口的需求,由于4月份自學(xué)考試臨近,一直在備考就拖著沒總結(jié)記錄下,開發(fā)聯(lián)調(diào)過程中也出現(xiàn)過一些奇葩的問題,最近人剛從考試緩過來順手記錄一下。 Amazon S3(Simple Storage Service)對(duì)象存儲(chǔ)出現(xiàn)得比較早且使用簡(jiǎn)單的RESTful

    2024年02月01日
    瀏覽(22)
  • ClickHouse 與 Amazon S3 結(jié)合?一起來探索其中奧秘

    ClickHouse 與 Amazon S3 結(jié)合?一起來探索其中奧秘

    目錄 ClickHouse 簡(jiǎn)介 ClickHouse 與對(duì)象存儲(chǔ) ClickHouse 與 S3 結(jié)合的三種方法 示例參考架構(gòu) 小結(jié) 參考資料 ClickHouse 簡(jiǎn)介 ClickHouse 是一種快速的、開源的、用于聯(lián)機(jī)分析(OLAP)的列式數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),由俄羅斯的Yandex公司開發(fā),于2016年開源。ClickHouse 作為交互式分析領(lǐng)域的后

    2024年02月10日
    瀏覽(14)
  • 【AWS】實(shí)操-保護(hù) Amazon S3 VPC 終端節(jié)點(diǎn)通信

    【AWS】實(shí)操-保護(hù) Amazon S3 VPC 終端節(jié)點(diǎn)通信

    數(shù)據(jù)安全至關(guān)重要。Amazon Web Services (AWS) 提供了多種解決方案和最佳實(shí)踐來幫助保護(hù)數(shù)據(jù)的安全。了解如何做出最佳決策來保護(hù)數(shù)據(jù)的安全,這項(xiàng)任務(wù)可能具有挑戰(zhàn)性。 在無路由指向互聯(lián)網(wǎng)的私有子網(wǎng)中運(yùn)行應(yīng)用程序,可將攻擊面限制為僅限內(nèi)部流量,從而實(shí)現(xiàn)數(shù)據(jù)安全。

    2024年02月10日
    瀏覽(19)
  • AWS——04篇(AWS之Amazon S3(云中可擴(kuò)展存儲(chǔ))-02——EC2訪問S3存儲(chǔ)桶)

    AWS——04篇(AWS之Amazon S3(云中可擴(kuò)展存儲(chǔ))-02——EC2訪問S3存儲(chǔ)桶)

    關(guān)于AWS的前幾篇入門文章,如下: AWS——01篇(AWS入門 以及 AWS之EC2實(shí)例及簡(jiǎn)單使用). AWS——02篇(AWS之服務(wù)存儲(chǔ)EFS在Amazon EC2上的掛載——針對(duì)EC2進(jìn)行托管文件存儲(chǔ)). AWS——03篇(AWS之Amazon S3(云中可擴(kuò)展存儲(chǔ))-01入門). 我這里使用的都是前面創(chuàng)建好的,關(guān)于怎么創(chuàng)建,請(qǐng)

    2024年02月13日
    瀏覽(30)
  • 使用Ceph對(duì)象存儲(chǔ)的Amazon S3接口(基于nautilus版本)

    Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng),提供了多種數(shù)據(jù)存儲(chǔ)方式,包括對(duì)象存儲(chǔ)。Amazon S3是一個(gè)流行的對(duì)象存儲(chǔ)服務(wù),Ceph提供了Amazon S3接口的兼容性,使得Ceph可以作為一個(gè)云存儲(chǔ)解決方案。 分片上傳接口是Amazon S3接口中的一個(gè)重要功能,它允許將大文件拆分成小的分片上傳,降低了上

    2024年02月06日
    瀏覽(27)
  • [ 云計(jì)算 | AWS 實(shí)踐 ] 使用 Java 更新現(xiàn)有 Amazon S3 對(duì)象

    [ 云計(jì)算 | AWS 實(shí)踐 ] 使用 Java 更新現(xiàn)有 Amazon S3 對(duì)象

    本文收錄于【#云計(jì)算入門與實(shí)踐 - AWS】專欄中,收錄 AWS 入門與實(shí)踐相關(guān)博文。 本文同步于個(gè)人公眾號(hào):【 云計(jì)算洞察 】 更多關(guān)于云計(jì)算技術(shù)內(nèi)容敬請(qǐng)關(guān)注:CSDN【#云計(jì)算入門與實(shí)踐 - AWS】專欄。 本系列已更新博文: [ 云計(jì)算 | AWS 實(shí)踐 ] Java 應(yīng)用中使用 Amazon S3 進(jìn)行存儲(chǔ)桶

    2024年02月05日
    瀏覽(26)
  • [ 云計(jì)算 | AWS 實(shí)踐 ] 基于 Amazon S3 協(xié)議搭建個(gè)人云存儲(chǔ)服務(wù)

    [ 云計(jì)算 | AWS 實(shí)踐 ] 基于 Amazon S3 協(xié)議搭建個(gè)人云存儲(chǔ)服務(wù)

    本文收錄于【#云計(jì)算入門與實(shí)踐 - AWS】專欄中,收錄 AWS 入門與實(shí)踐相關(guān)博文。 本文同步于個(gè)人公眾號(hào):【 云計(jì)算洞察 】 更多關(guān)于云計(jì)算技術(shù)內(nèi)容敬請(qǐng)關(guān)注:CSDN【#云計(jì)算入門與實(shí)踐 - AWS】專欄。 本系列已更新博文: [ 云計(jì)算 | AWS 實(shí)踐 ] Java 應(yīng)用中使用 Amazon S3 進(jìn)行存儲(chǔ)桶

    2024年02月05日
    瀏覽(28)
  • Filebeat ? Logstash 將日志文件輸出到 Elasticsearch 或 Amazon S3

    filebeat是什么 Filebeat 是一個(gè)開源的輕量級(jí)日志數(shù)據(jù)收集器,由 Elastic 公司開發(fā)。它主要用于實(shí)時(shí)收集、解析和傳輸日志數(shù)據(jù),將日志數(shù)據(jù)從不同的源頭(如文件、日志文件、系統(tǒng)日志等)傳輸?shù)侥繕?biāo)位置(如 Elasticsearch、Logstash 等),以便進(jìn)行存儲(chǔ)、分析和監(jiān)控。 Filebeat 的主

    2024年02月11日
    瀏覽(17)
  • AWS——03篇(AWS之Amazon S3(云中可擴(kuò)展存儲(chǔ))-01入門)

    AWS——03篇(AWS之Amazon S3(云中可擴(kuò)展存儲(chǔ))-01入門)

    關(guān)于AWS的其他入門,如下: AWS——01篇(AWS入門 以及 AWS之EC2實(shí)例及簡(jiǎn)單使用). AWS——02篇(AWS之服務(wù)存儲(chǔ)EFS在Amazon EC2上的掛載——針對(duì)EC2進(jìn)行托管文件存儲(chǔ)). 2.1.1 簡(jiǎn)述 Amazon S3:從任意位置存儲(chǔ)和檢索任意數(shù)量的數(shù)據(jù) Amazon S3 是一項(xiàng)對(duì)象存儲(chǔ)服務(wù),可提供業(yè)界領(lǐng)先的可擴(kuò)展

    2024年02月14日
    瀏覽(35)
  • Amazon s3 sdk for java2.x 最新api的簡(jiǎn)單使用

    Amazon s3 sdk for java2.x 最新api的簡(jiǎn)單使用

    目錄 創(chuàng)建存儲(chǔ)桶 登錄亞馬遜控制臺(tái) 查找服務(wù)“S3” 進(jìn)入存儲(chǔ)桶創(chuàng)建頁(yè)面; 點(diǎn)擊 “創(chuàng)建存儲(chǔ)桶”進(jìn)入創(chuàng)建頁(yè)面; 獲取密鑰ID和密鑰 點(diǎn)擊右上方賬戶信息在下拉菜單中選擇 “安全憑證”(Security credentials)進(jìn)入我的安全憑證頁(yè)面; 下滑找到 “訪問密鑰”標(biāo)簽 ?點(diǎn)擊右側(cè)? “

    2024年02月20日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包