Amazon s3 AWS铲斗不可拆卸

Amazon s3 AWS铲斗不可拆卸,amazon-s3,Amazon S3,AWS S3 web控制台列出已删除的存储桶。选择铲斗并尝试清空或删除它会导致“清空铲斗”或“删除铲斗”模式确认按钮无声失败 如果您点击bucket并尝试上传文件,您会收到一条错误消息“error Data not found”。如果您尝试创建文件夹,则会收到“创建名为“”的文件夹时出错”。如果您尝试更改名称和属性、权限或管理,则还会收到错误消息 如果您尝试使用相同的名称创建一个bucket(可能是为了覆盖旧的bucket),则会收到一条错误消息,指示使用了该bucket名称 类似地,s3 up

AWS S3 web控制台列出已删除的存储桶。选择铲斗并尝试清空或删除它会导致“清空铲斗”或“删除铲斗”模式确认按钮无声失败

如果您点击bucket并尝试上传文件,您会收到一条错误消息“error Data not found”。如果您尝试创建文件夹,则会收到“创建名为“”的文件夹时出错”。如果您尝试更改名称和属性、权限或管理,则还会收到错误消息

如果您尝试使用相同的名称创建一个bucket(可能是为了覆盖旧的bucket),则会收到一条错误消息,指示使用了该bucket名称

类似地,s3 upload之类的库也无法删除或覆盖bucket

AWS(节点)SDK:

返回存储桶,即使它不应该存在

{ 
  Buckets: [ 
   { Name: 'bucket.that.shouldnt.exist', CreationDate: 2017-02-20T01:51:19.000Z },
  ],
  Owner: { 
   DisplayName: '...',
   ID: '...' 
  }     
}

返回

{ 
  NoSuchBucket: The specified bucket does not exist
  at Request.extractError (.../aws-sdk/lib/services/s3.js:585:35)
  at Request.callListeners (.../aws-sdk/lib/sequential_executor.js:106:20)
  at Request.emit (.../aws-sdk/lib/sequential_executor.js:78:10)
  at Request.emit (.../aws-sdk/lib/request.js:683:14)
  at Request.transition (.../aws-sdk/lib/request.js:22:10)
  at AcceptorStateMachine.runTo (.../aws-sdk/lib/state_machine.js:14:12)
  at .../aws-sdk/lib/state_machine.js:26:10
  at Request.<anonymous> (.../aws-sdk/lib/request.js:38:9)
  at Request.<anonymous> (.../aws-sdk/lib/request.js:685:12)
  at Request.callListeners (.../aws-sdk/lib/sequential_executor.js:116:18)
  message: 'The specified bucket does not exist',
  code: 'NoSuchBucket',
  region: null,
  time: 2019-06-04T16:56:35.537Z,
  requestId: '...',
  extendedRequestId: '...',
  cfId: undefined,
  statusCode: 404,
  retryable: false,
  retryDelay: 33.90621042754991 
}
{
NoSuchBucket:指定的bucket不存在
at Request.extractError(…/aws sdk/lib/services/s3.js:585:35)
at Request.callListeners(…/aws sdk/lib/sequential_executor.js:106:20)
at Request.emit(…/aws sdk/lib/sequential_executor.js:78:10)
at Request.emit(…/aws sdk/lib/Request.js:683:14)
at Request.transition(…/aws sdk/lib/Request.js:22:10)
在AcceptorStateMachine.runTo(…/aws sdk/lib/state_machine.js:14:12)
在…/aws sdk/lib/state_machine.js:26:10
应请求。(…/aws sdk/lib/Request.js:38:9)
应请求。(…/aws sdk/lib/Request.js:685:12)
at Request.callListeners(…/aws sdk/lib/sequential_executor.js:116:18)
消息:“指定的存储桶不存在”,
代码:“NoSuchBucket”,
区域:空,
时间:2019-06-04T16:56:35.537Z,
请求ID:“…”,
extendedRequestId:“…”,
cfId:未定义,
状态代码:404,
可检索:错误,
retryDelay:33.90621042754991
}

出于某种原因,AWS createBucket API工作正常(尽管控制台没有工作):


然后,您应该能够在被覆盖的bucket上正常执行操作。

Amazon S3是一个大型分布式系统。删除S3存储桶与删除硬盘上的本地文件夹截然不同

启动删除bucket后,bucket名称在一定时间内不可用。您不能重新创建bucket、重新删除bucket、从bucket中获取对象或将对象放入bucket

最近删除的bucket名称不能被重用以创建新bucket的时间长短各不相同。如果您以前拥有bucket名称,并且尝试在同一区域重新创建bucket,则通常可以几乎立即重新创建它。如果您不是以前的所有者,或者您正试图在其他区域重新创建bucket名称,则bucket名称通常会在数小时内不可用

请注意,作为一般规则,如果您打算重复使用相同的bucket名称,那么通常最好是清空bucket,而不是删除并重新创建bucket。另一个客户可能会在您的删除和重新创建尝试之间创建相同的命名bucket,从而导致您失去对bucket名称的控制(当然不太可能,但可能)

s3.deleteBucket({
  Bucket: 'bucket.that.shouldnt.exist'
}, (error, data) => {
  console.log(error);
  console.log(data);
});
{ 
  NoSuchBucket: The specified bucket does not exist
  at Request.extractError (.../aws-sdk/lib/services/s3.js:585:35)
  at Request.callListeners (.../aws-sdk/lib/sequential_executor.js:106:20)
  at Request.emit (.../aws-sdk/lib/sequential_executor.js:78:10)
  at Request.emit (.../aws-sdk/lib/request.js:683:14)
  at Request.transition (.../aws-sdk/lib/request.js:22:10)
  at AcceptorStateMachine.runTo (.../aws-sdk/lib/state_machine.js:14:12)
  at .../aws-sdk/lib/state_machine.js:26:10
  at Request.<anonymous> (.../aws-sdk/lib/request.js:38:9)
  at Request.<anonymous> (.../aws-sdk/lib/request.js:685:12)
  at Request.callListeners (.../aws-sdk/lib/sequential_executor.js:116:18)
  message: 'The specified bucket does not exist',
  code: 'NoSuchBucket',
  region: null,
  time: 2019-06-04T16:56:35.537Z,
  requestId: '...',
  extendedRequestId: '...',
  cfId: undefined,
  statusCode: 404,
  retryable: false,
  retryDelay: 33.90621042754991 
}
var aws = require('aws-sdk');

var s3 = new aws.S3();

s3.createBucket({
  Bucket: 'bucket.that.shouldnt.exist'
}, (error, data) => {
  console.log(error);
  console.log(data);
});