The*_*hat 49 symlink amazon-s3
我有一个对象,我想使用不同的键来解决,而不是实际复制对象本身,如Linux中的符号链接.Amazon S3提供这样的东西吗?
Mic*_*bot 41
S3不支持符号链接的概念,其中一个对象键被视为另一个对象键的别名.(你之前可能听说过:S3不是文件系统.它是一个对象存储).
如果您使用的是静态网站托管功能,则可以使用对象级重定向对此功能进行部分模拟:
http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html
这导致对"对象-a"的请求受到301 Moved Permanently
响应的欢迎,Location:
标题中的"object-b"的URL用于类似目的,但当然仍然完全不同.它仅在请求到达网站端点(而不是REST端点)时才有效.
如果您在EC2中使用反向代理(haproxy,nginx等)来处理传入的请求并将它们转发到存储桶,那么您当然可以在代理层重写请求URL,然后转发到S3,所以你可以将传入的请求路径转换为您需要呈现给S3的任何内容.这有多实用取决于你的应用程序和动机,但这是我用来修改特定存储桶中某个对象出现的位置与实际存储位置相比的策略之一,允许我根据其他属性重写路径在请求中.
小智 10
我有一个类似的问题,需要一个解决方案,我将在下面介绍.虽然S3不支持符号链接,但您可以通过以下方式执行此操作:
echo "https://s3.amazonaws.com/my.bucket.name/path/to/a/targetfile" > file
aws s3 cp file s3://my.bucket.name/file
wget $(curl https://s3.amazonaws.com/my.bucket.name/file)
Run Code Online (Sandbox Code Playgroud)
这实际上做的是获取文件的内容,这实际上只是指向目标文件的指针,然后将其传递给wget(curl也可以用于重定向到文件而不是wget).
这实际上只是一个解决方法,因为它不是一个真正的符号链接,而是一个模拟符号链接的创造性解决方案.
符号链接不,但可能是多个键的相同对象。
请参阅 Rodrigo 在Amazon S3 上的回答- 一个对象的多个键
如果您使用的是在 S3 上提供服务的网站,则可以通过标头进行 x-amz-website-redirect-location
如果您不使用网站服务,您可以创建自定义标头 ( x-amz-meta-KeyAlias
) 并手动处理。
归档时间: |
|
查看次数: |
31205 次 |
最近记录: |