創建桶
功能說明
您可(ke)以使用(yong) createBucket 接口創(chuang)建桶,創(chuang)建桶時可(ke)以指定桶的名稱、訪(fang)問權限和(he)區域位置等。
代碼示例
// Create the parameters for calling createBucket
var bucketParams = {
Bucket: "<your-bucket-name>",
ACL: 'private',
CreateBucketConfiguration: {
LocationConstraint: ''
}
};
?
// call S3 to create the bucket
s3Client.createBucket(bucketParams, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
| ACL | String | 設置桶訪問權限為私有讀寫 | 否 |
| CreateBucketConfiguration | Object | 創建桶的基本配置 | 是 |
| LocationConstraint | String | 設置桶區域位置 | 是 |
返回結果
根據返回碼判斷是(shi)否(fou)操作(zuo)成(cheng)功(gong)。
獲取桶列表
功能說明
您可以使用 listBuckets 接口獲取桶(tong)列(lie)表,以下代碼展示如(ru)何獲取桶(tong)列(lie)表。
代碼示例
// Call s3Client to list the buckets
s3Client.listBuckets(function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data.Buckets);
}
});請求參數
無
返回結果
| 參數 | 類型 | 說明 |
|---|---|---|
| Buckets | Array | 桶列表 |
| Owner | Object | bucket的擁有者信息 |
關于Buckets一些說明
| 參數 | 說明 |
|---|---|
| Name | 桶名 |
| CreationDate | 桶創建時間 |
判斷桶是否存在
功能說明
您可(ke)以(yi)使用 headBucket接(jie)口判斷(duan)桶(tong)是否存在,以(yi)下代碼展示(shi)如何(he)判斷(duan)一(yi)個桶(tong)是否存在。
代碼示例
var params = {
Bucket: "<your-bucket-name>",
}
s3Client.headBucket(params, function (err, data) {
if (err) {
console.log(err);
} else {
console.log(data);
}
})請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
根據返回碼判(pan)斷是否操(cao)作成功。
刪除桶
功能說明
您可以使用 deleteBucket接(jie)口刪(shan)除桶(tong)(tong),以下代碼展示如何刪(shan)除桶(tong)(tong)。注意:在(zai)刪(shan)除桶(tong)(tong)前,必(bi)須先(xian)確保桶(tong)(tong)為(wei)空,否則(ze)會導致(zhi)BucketNotEmpty錯誤。
代碼示例
// Create params for s3Client.deleteBucket
var bucketParams = {
Bucket: "<your-bucket-name>",
};
?
// Call s3Client to delete the bucket
s3Client.deleteBucket(bucketParams, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
根(gen)據返(fan)回碼判斷是否操作成功。
設置桶訪問權限
功能說明
您可以使用setBucketAcl接(jie)口設置(zhi)桶(tong)的訪問(wen)權限(ACL) ,以下(xia)代碼展示如何設置(zhi)桶(tong)的訪問(wen)權限。
使用(yong)訪問(wen)控制列(lie)表(ACL)在存(cun)儲(chu)桶(tong)(tong)(tong)上設(she)置(zhi)(zhi)桶(tong)(tong)(tong)訪問(wen)權限(xian)。要(yao)設(she)置(zhi)(zhi)存(cun)儲(chu)桶(tong)(tong)(tong)的(de)ACL,您必須具(ju)有(you)WRITE_ACP權限(xian)。您可以使用(yong)以下(xia)兩種方(fang)式之一來設(she)置(zhi)(zhi)存(cun)儲(chu)桶(tong)(tong)(tong)的(de)權限(xian):在請求(qiu)正(zheng)文中指定(ding)ACL、使用(yong)請求(qiu)標頭指定(ding)權限(xian)。注(zhu)意:您不(bu)能同時(shi)使用(yong)正(zheng)文和請求(qiu)標頭指定(ding)訪問(wen)權限(xian)。
xos支持一(yi)組(zu)預(yu)(yu)(yu)定義(yi)(yi)的(de)ACL,稱為canned ACL。每個canned ACL都有(you)一(yi)組(zu)預(yu)(yu)(yu)定義(yi)(yi)的(de)被許可人(ren)和(he)權(quan)限,預(yu)(yu)(yu)定義(yi)(yi)的(de)訪問策略使用請(qing)求標頭指定權(quan)限,見下(xia)表:
| 權限 | 描述 | SDK對應值 |
|---|---|---|
| 私有讀寫 | 所有者獲得FULL_CONTROL。 其他人沒有訪問權限(默認) | private |
| 公共讀私有寫 | 所有者獲得FULL_CONTROL。 AllUsers組獲得READ訪問權限 | public-read |
| 公共讀寫 | 所有者獲得FULL_CONTROL。 AllUsers組具有“讀取”和“寫入”訪問權限。 通常不建議在存儲桶上授予此權限 | public-read-write |
指定(ding)顯式訪問(wen)權(quan)(quan)限和被(bei)授(shou)權(quan)(quan)用(yong)戶。這些(xie)參數映射到(dao)s3Client在ACL中支持的權(quan)(quan)限集。使用(yong) AccessControlList 設(she)(she)置桶(tong)訪問(wen)權(quan)(quan)限時,可以設(she)(she)置特定(ding)用(yong)戶對桶(tong)的訪問(wen)權(quan)(quan)限。桶(tong)的 AccessControlList 權(quan)(quan)限如下表:
| 權限 | SDK對應值 |
|---|---|
| 可讀,可列出桶下的對象。 | READ |
| 可寫,可創建/刪除/覆蓋寫該桶下的對象。 | WRITE |
| 可讀取桶的acl規則。 | READ_ACP |
| 可修改桶的acl規則。 | WRITE_ACP |
| 完全權限。擁有以上所有權限。 | FULL_CONTROL |
代碼示例
使用canned ACL設(she)置(zhi)桶(tong)(tong)的(de)訪(fang)問權限(xian)示(shi)例代(dai)碼如(ru)下(xia):用預定(ding)義訪(fang)問策略設(she)置(zhi)桶(tong)(tong)權限(xian)。
s3Client.putBucketAcl({
Bucket: "<your-bucket-name>",
// 設置桶訪問權限
ACL: private | public-read | public-read-write,
}, (err, data) => {
if (err) {
console.error(err);
} else {
console.log(data);
}
});使用(yong)AccesssControlList設(she)置桶(tong)(tong)的訪問權(quan)限(xian)(xian)示例(li)代碼如下:以下示例(li)替換(huan)了存(cun)儲桶(tong)(tong)上的現(xian)有(you)ACL。授予存(cun)儲桶(tong)(tong)所有(you)者(zhe)(使用(yong)所有(you)者(zhe)ID指定)FullControl權(quan)限(xian)(xian),并向用(yong)戶組(zu)授予寫入(ru)權(quan)限(xian)(xian)。
var params = {
Bucket: "<your-bucket-name>",
AccessControlPolicy: {
Grants: [
{
Grantee: {
// The canonical ID of the user. This ID is an obfuscated form of your XOS account number.
ID: "<grantee-canonical-id>",
Type: "CanonicalUser",
},
Permission: "FULL_CONTROL",
},
],
Owner: {
ID: "<owner-canonical-id>",
},
}};
s3Client.putBucketAcl(params, function (err, data) {
if (err) {
console.error(err);
} else {
console.log(data);
}
});請求參數
預定義的ACL
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
| ACL | String | 桶訪問權限,參考上面的canned ACL | 是 |
指定顯式訪問(wen)權(quan)(quan)限和被(bei)授權(quan)(quan)用戶(hu)AccessControlList
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
| AccessControlPolicy | Object | 訪問權限和被授權用戶對象 | 是 |
關于(yu)AccessControlPolicy的說明:
Owner參數用來指定桶的所有者信息,Grants參數用來指定被授權的用戶信息。其中和權限有關的參數是Permission,您可以選擇 FULL_CONTROL | READ | WRITE | READ_ACP | WRITE_ACP 來設定相(xiang)應(ying)的(de)權限。
返回結果
根據(ju)返回碼判斷是否操作成功。
獲取桶訪問權限
功能說明
您可以(yi)使用getBucketAcl接口(kou)獲(huo)取(qu)桶的(de)訪問權限(ACL) ,以(yi)下代碼展示如(ru)何獲(huo)取(qu)桶的(de)訪問權限。
在(zai)調(diao)用 getBucketAcl 方法時,您(nin)需(xu)要傳(chuan)遞的(de)唯一參數(shu)(shu)是所選存儲桶的(de)名(ming)稱。當前訪(fang)問控制(zhi)列表配(pei)置由(you)在(zai)傳(chuan)遞到回調(diao)函數(shu)(shu)的(de) data 參數(shu)(shu)中返回。
代碼示例
var bucketParams = {
Bucket: "<your-bucket-name>",
};
// call s3Client to retrieve policy for selected bucket
s3Client.getBucketAcl(bucketParams, function (err, data) {
if (err) {
console.log("Error", err);
} else if (data) {
console.log("Success", data.Grants);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
| 參數 | 類型 | 說明 |
|---|---|---|
| Grantee | Object | 桶訪問權限配置 |
| Permission | String | 桶訪問權限 |
設置桶策略
功能說明
除(chu)了桶訪(fang)問權限(xian)外,桶的擁有(you)者還可以通過桶策略(lve),提供對(dui)(dui)桶和(he)桶內對(dui)(dui)象的集(ji)中(zhong)訪(fang)問控制。您(nin)可以在putBucketPolicy 接(jie)口(kou)中(zhong)使用 JSON格式(shi)的文本字符串直接(jie)指定策略(lve)。
存儲桶的策(ce)略主要包含以下元素:
| 參數 | 說明 |
|---|---|
| Resource | 可選關鍵字,指定statement起作用的一組資源,支持通配符“*”,表示所有資源 |
| Action | 可選關鍵字,指定本條statement作用的操作,Action字段為媒體存儲支持的所有操作集合,以字符串形式表示,不區分大小寫。支持通配符“*”,表示該資源能進行的所有操作 |
| Effect | 必選關鍵字,指定本條statement的權限是允許還是拒絕,Effect的值必須為Allow或者Deny |
| Principal | 可選關鍵字,被授權人,指定本條statement權限針對的Domain以及User,支持通配符“*”,表示所有用戶(匿名用戶)。當對Domain下所有用戶授權時,Principal格式為arn:aws:iam:::user/*。當對某個User進行授權時,Principal格式為arn:aws:iam:::user/<your-user-name> |
代碼示例
let policy = {
Version: "2012-10-17",
Statement: [{
Sid: "AddPerm",
Effect: "Allow",
Principal: "*",
Action: [
"s3:GetObject"
],
Resource: [
"arn:aws:s3:::" + this.bucket + "/*"
]
}]
};
let params = {
Bucket: this.bucket,
Policy: JSON.stringify(policy),
};
this.s3Client.putBucketPolicy(params, function(err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
| Policy | String | 桶策略 | 是 |
返回結果
根據(ju)返回(hui)碼判斷是否操作成功。
獲取桶策略
功能說明
在(zai)調用(yong) getBucketPolicy 方法(fa)時,您需要傳(chuan)遞的(de)唯一參(can)數(shu)是所選(xuan)存(cun)(cun)儲桶的(de)名(ming)稱。如果存(cun)(cun)儲桶當(dang)前具有策(ce)略(lve),該策(ce)略(lve)在(zai)由傳(chuan)遞到回(hui)調函(han)數(shu)的(de)data參(can)數(shu)中返回(hui),如果所選(xuan)存(cun)(cun)儲桶沒有策(ce)略(lve),該信息將在(zai)error參(can)數(shu)中返回(hui)給回(hui)調函(han)數(shu)。
代碼示例
var bucketParams = {
Bucket: "<your-bucket-name>",
};
// call s3Client to retrieve policy for selected bucket
s3Client.getBucketPolicy(bucketParams, function (err, data) {
if (err) {
console.log("Error", err);
} else if (data) {
console.log("Success", data.Policy);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
| 參數 | 類型 | 說明 |
|---|---|---|
| Policy | Object | 桶策略對象 |
關于Policy一(yi)些(xie)說明
| 參數 | 說明 |
|---|---|
| Resource | 指定statement起作用的一組資源,支持通配符“*”,表示所有資源 |
| Action | 指定本條statement作用的操作,Action字段為媒體存儲支持的所有操作集合,以字符串形式表示,不區分大小寫。支持通配符“*”,表示該資源能進行的所有操作 |
| Effect | 指定本條statement的權限是允許還是拒絕,Effect的值必須為Allow或者Deny |
| Principal | 被授權人,指定本條statement權限針對的Domain以及User,支持通配符“*”,表示所有用戶(匿名用戶)。當對Domain下所有用戶授權時,Principal格式為arn:aws:iam:::user/*。當對某個User進行授權時,Principal格式為arn:aws:iam:::user/<your-user-name> |
刪除桶策略
功能說明
您可以使用(yong) deleteBucketPolicy接口刪(shan)(shan)除桶策(ce)略(lve),以下代碼展示(shi)如何刪(shan)(shan)除一個(ge)桶策(ce)略(lve)。
代碼示例
var bucketParams = {
Bucket: "<your-bucket-name>",
};
// call s3Client to delete policy for selected bucket
s3Client.deleteBucketPolicy(bucketParams, function (err, data) {
if (err) {
console.log("Error", err);
} else if (data) {
console.log("Success", data);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
根據返回碼判斷是(shi)否(fou)操作(zuo)成功。
設置桶生命周期配置
功能說明
生(sheng)命周期(qi)(qi)管理可以通過(guo)設(she)(she)置規則實現自動(dong)清理過(guo)期(qi)(qi)的對象,優化存儲空間(jian)。本文介(jie)紹如何設(she)(she)置桶(Bucket)生(sheng)命周期(qi)(qi)配(pei)置。 您可以使用putBucketLifecycleConfiguration接(jie)口設(she)(she)置桶的生(sheng)命周期(qi)(qi)配(pei)置,配(pei)置規則可以通過(guo)匹配(pei)對象key前(qian)(qian)綴、標簽的方法(fa)設(she)(she)置當前(qian)(qian)版本或者歷史版本對象的過(guo)期(qi)(qi)時間(jian),對象過(guo)期(qi)(qi)后會被自動(dong)刪(shan)除。
代碼示例
var params = {
Bucket: "<your-bucket-name>",
LifecycleConfiguration: {
Rules: [
{
Expiration: {
Days: 3650,
},
Filter: { //required
Prefix: '',
},
ID: 'TestOnly',
Status: 'Enabled', //required
Transitions: [
{
Days: 365,
StorageClass: 'GLACIER',
},
],
NoncurrentVersionExpiration: {
NoncurrentDays: 123,
},
AbortIncompleteMultipartUpload: {
DaysAfterInitiation: 123
}
},
],
}
};
?
s3Client.putBucketLifecycleConfiguration(params, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
| LifecycleConfiguration | LifecycleConfiguration | 封裝了生命周期規則的數組,最多包含1000條規則 | 是 |
關于生命(ming)周期規則Rule一些說明
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| ID | String | 規則ID | 否 |
| Status | String | 是否啟用規則 (Enabled|Disabled) | 是 |
| Expiration | Expiration | 文件過期時間 | 否 |
| AbortIncompleteMultipartUpload | AbortIncompleteMultipartUpload | 未完成上傳的分片過期時間 | 否 |
| Transitions | Transition數組 | 文件轉換到低頻存儲規則(距離修改時間) | 否 |
| Filter | Filter | 應用范圍,可以指定前綴或對象標簽 | 否 |
關于Expiration的說明:
| 參數 | 類型 | 說明 |
|---|---|---|
| Days | Int | 過期天數 |
關于AbortIncompleteMultipartUpload的說明:
| 參數 | 類型 | 說明 |
|---|---|---|
| DaysAfterInitiation | Int | 過期天數 |
關于(yu)Transition的說明:
| 參數 | 類型 | 說明 |
|---|---|---|
| Days | Int | 轉換過期天數 |
| StorageClass | StorageClass | 要轉換的存儲類型 |
關于Filter的說明:
| 參數 | 類型 | 說明 |
|---|---|---|
| Prefix | string | 需要過濾的前綴 |
返回結果
根據(ju)返回碼判斷是否操作成功。
獲取桶生命周期配置
功能說明
您可(ke)以使用getBucketLifecycleConfiguration接口獲取桶的生命周期(qi)配置。
代碼示例
var params = {
Bucket: "<your-bucket-name>",
};
?
s3Client.getBucketLifecycleConfiguration(params, function (err, data) {
if (err) {
console.log("Error", err);
} else if (data) {
console.log("Success", data);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
| 參數 | 類型 | 說明 |
|---|---|---|
| Rules | Rule數組 | 一個描述生命周期管理的規則數組,一條規則包含了規則ID、匹配的對象key前綴、匹配的對象標簽信息、當前版本對象過期時間、歷史版本對象過期時間和是否生效標識等信息 |
關(guan)于生命周期(qi)規則Rule一些說明(ming)
| 參數 | 類型 | 說明 |
|---|---|---|
| ID | String | 規則ID |
| Status | String | 是否啟用規則 (Enabled|Disabled) |
| Expiration | Expiration | 文件過期時間 |
| AbortIncompleteMultipartUpload | AbortIncompleteMultipartUpload | 未完成上傳的分片過期時間 |
| Transitions | Transition數組 | 文件轉換到低頻存儲規則(距離修改時間) |
| Filter | Filter | 應用范圍,可以指定前綴或對象標簽 |
關于Expiration的說明:
| 參數 | 類型 | 說明 |
|---|---|---|
| Days | Int | 過期天數 |
關于AbortIncompleteMultipartUpload的說明:
| 參數 | 類型 | 說明 |
|---|---|---|
| DaysAfterInitiation | Int | 過期天數 |
關于Transition的說明(ming):
| 參數 | 類型 | 說明 |
|---|---|---|
| Days | Int | 轉換過期天數 |
| StorageClass | StorageClass | 要轉換的存儲類型 |
關于Filter的說(shuo)明:
| 參數 | 類型 | 說明 |
|---|---|---|
| Prefix | String | 需要過濾的前綴 |
刪除桶生命周期配置
功能說明
您可以使用deleteBucketLifecycle接口刪除桶(tong)的生(sheng)命(ming)周期配(pei)置。
代碼示例
// Set the parameters for s3Client.deleteBucketLifecycle
var bucketParams = {
Bucket: "<your-bucket-name>",
};
?
s3Client.deleteBucketLifecycle(bucketParams, function(err, data) {
if (err) {
console.log("Error", err);
} else if (data) {
console.log("Success", JSON.stringify(data.CORSRules));
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
根據返回碼(ma)判(pan)斷(duan)是否(fou)操作成(cheng)功。
設置桶跨域訪問配置
功能說明
跨域資源(yuan)共(gong)享 (CORS) 定(ding)義(yi)了在一個域中(zhong)加載的(de)客戶(hu)(hu)端 Web 應(ying)(ying)用(yong)程序與(yu)另一個域中(zhong)的(de)資源(yuan)交互的(de)方式。利用(yong) CORS 支持(chi),您可以構建(jian)豐富的(de)客戶(hu)(hu)端 Web 應(ying)(ying)用(yong)程序,同時可以選擇性(xing)地允(yun)許跨源(yuan)訪問您的(de)資源(yuan)。
您(nin)可以(yi)通過 putBucketCors接口設置桶(tong)的跨(kua)域訪問(wen)設置,以(yi)下為示例代碼。
代碼示例
var corsParams = {
Bucket: "<your-bucket-name>",
CORSConfiguration: {
CORSRules: [{
AllowedHeaders: ["*"],
AllowedMethods: ["POST", "GET", "PUT", "DELETE", "HEAD"],
AllowedOrigins: ["*"],
ExposeHeaders: ["ETag"],
MaxAgeSeconds: 3600,
}],
},
};
s3Client.putBucketCors(corsParams, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
| CORSConfiguration | Object | CORS配置對象 | 是 |
返回結果
根據(ju)返回碼判(pan)斷是(shi)否(fou)操(cao)作(zuo)成功。
獲取桶跨域訪問配置
功能說明
您(nin)可以使用getBucketCors接口獲(huo)取(qu)(qu)桶(tong)的跨域訪問配置(zhi),以下代(dai)碼(ma)展(zhan)示(shi)如何獲(huo)取(qu)(qu)桶(tong)的跨域訪問配置(zhi)。
在調(diao)(diao)用 getBucketCors 方法(fa)時,您需要(yao)傳遞的(de)(de)唯(wei)一參(can)數(shu)(shu)(shu)(shu)是所選存儲(chu)桶的(de)(de)名稱。如(ru)果(guo)存儲(chu)桶當前具有 CORS 配(pei)置,該配(pei)置由傳遞到回調(diao)(diao)函數(shu)(shu)(shu)(shu)的(de)(de) data 參(can)數(shu)(shu)(shu)(shu)的(de)(de) CORSRules 屬性返回。如(ru)果(guo)所選存儲(chu)桶沒有 CORS 配(pei)置,該信息將在 error 參(can)數(shu)(shu)(shu)(shu)中(zhong)返回到回調(diao)(diao)函數(shu)(shu)(shu)(shu)。
代碼示例
// Set the parameters for s3Client.getBucketCors
var bucketParams = {
Bucket: "<your-bucket-name>",
};
?
// call s3Client to retrieve CORS configuration for selected bucket
s3Client.getBucketCors(bucketParams, function (err, data) {
if (err) {
console.log("Error", err);
} else if (data) {
console.log("Success", JSON.stringify(data.CORSRules));
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
| 參數 | 類型 | 說明 |
|---|---|---|
| CORSRules | Array | 跨域訪問規則數組 |
關于CORSRules一些說明
| 參數 | 說明 |
|---|---|
| AllowedMethods | 允許的請求方法 |
| AllowedOrigins | 允許的請求源 |
| AllowedHeaders | 允許的請求頭 |
| ExposedHeaders | 允許返回的Response Header |
| MaxAgeSeconds | 跨域請求結果的緩存時間 |
刪除桶跨域訪問配置
功能說明
您(nin)可以(yi)通(tong)過 deleteBucketCors接(jie)口刪除桶跨域訪問設置(zhi),以(yi)下為示例代碼。
在(zai)調(diao)(diao)用(yong) deleteBucketCors 方(fang)法時,您需要(yao)傳(chuan)遞(di)的(de)(de)唯一參(can)數(shu)(shu)是所(suo)選(xuan)存儲(chu)(chu)桶(tong)(tong)的(de)(de)名稱。如果存儲(chu)(chu)桶(tong)(tong)當前(qian)具有策略,該(gai)策略在(zai)由傳(chuan)遞(di)到(dao)回(hui)(hui)調(diao)(diao)函數(shu)(shu)的(de)(de)data參(can)數(shu)(shu)中(zhong)(zhong)返回(hui)(hui),如果所(suo)選(xuan)存儲(chu)(chu)桶(tong)(tong)沒(mei)有跨域訪問設置,該(gai)信息將在(zai)error參(can)數(shu)(shu)中(zhong)(zhong)返回(hui)(hui)給回(hui)(hui)調(diao)(diao)函數(shu)(shu)。
代碼示例
// Set the parameters for s3Client.deleteBucketCors
var bucketParams = {
Bucket: "<your-bucket-name>",
};
?
// call s3Client to retrieve CORS configuration for selected bucket
s3Client.deleteBucketCors(bucketParams, function (err, data) {
if (err) {
console.log("Error", err);
} else if (data) {
console.log("Success", JSON.stringify(data.CORSRules));
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
根據返回碼(ma)判斷是否(fou)操作(zuo)成功。
設置桶版本控制狀態
功能說明
在開(kai)啟版(ban)本(ben)控制(zhi)(zhi)(zhi)功(gong)能(neng)后,上傳(chuan)同名對象將不再刪(shan)(shan)除舊對象,而是添加一個(ge)(ge)新的(de)對象。普通(tong)的(de)刪(shan)(shan)除操作(zuo)也不會將對象徹底刪(shan)(shan)除,而是添加一個(ge)(ge) Delete Marker 作(zuo)為標識。容器開(kai)啟版(ban)本(ben)控制(zhi)(zhi)(zhi)功(gong)能(neng)之后,無法再關閉該功(gong)能(neng),只(zhi)能(neng)暫停。 桶的(de)版(ban)本(ben)控制(zhi)(zhi)(zhi)狀(zhuang)態可以設置為以下的(de)值:
Enabled:對bucket中的所(suo)有對象啟用(yong)版本控制,之后每個添加(jia)到bucket中的對象都(dou)會(hui)被(bei)設置(zhi)一個唯一的version id。
Suspended:關閉(bi)bucket的版本(ben)控(kong)制(zhi),之后每個添加(jia)到(dao)bucket中的對象的version ID會被(bei)設置為null。
代碼示例
//開啟版本控制
var params = {
Bucket: "<your-bucket-name>",
VersioningConfiguration: {
Status: 'Enabled'
},
};
s3Client.putBucketVersioning(params, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});
?
//暫停版本控制
var params = {
Bucket: "<your-bucket-name>",
VersioningConfiguration: {
Status: 'Suspended'
},
};
s3Client.putBucketVersioning(params, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
| VersioningConfiguration | Object | 桶版本控制配置對象 | 是 |
| Status | String | 桶版本控制開關狀態 | 是 |
返回結果
根據返回碼判斷是(shi)否(fou)操作(zuo)成功。
獲取桶版本控制狀態
功能說明
媒體存(cun)儲(chu)支持設置(zhi)和(he)存(cun)儲(chu)一個(ge)(ge)對象的多個(ge)(ge)版本,使您更方便地(di)檢索(suo)和(he)還原(yuan)各個(ge)(ge)版本,以(yi)(yi)便可以(yi)(yi)快速恢(hui)復數(shu)據。 您可以(yi)(yi)使用 getBucketVersioning接口獲取版本控(kong)制狀(zhuang)態,代碼示(shi)例(li):
代碼示例
// Create the parameters for calling getBucketVersioning
var bucketParams = {
Bucket: "<your-bucket-name>",
};
?
// call S3 to getBucketVersioning
s3Client.getBucketVersioning(bucketParams, function (err, data) {
if (err) {
console.log("Error", err);
} else {
console.log("Success", data);
}
});請求參數
| 參數 | 類型 | 說明 | 是否必要 |
|---|---|---|---|
| Bucket | String | 桶名稱 | 是 |
返回結果
| 參數 | 類型 | 說明 |
|---|---|---|
| Status | String | 桶版本控制狀態 |