gpt4 book ai didi

object - 如何从 s3 url 获取文件(前 n 个字节)

转载 作者:行者123 更新时间:2023-12-02 09:50:55 33 4
gpt4 key购买 nike

这是一个基本问题,不是很高级,但我有点卡住了。

我正在尝试获取 s3 上托管的文件的前 n 个字节。我了解这个问题的基本组成部分。我知道如何获取字节。这是来自 AmazonS3 的示例

GET /example-object HTTP/1.1
Host: example-bucket.s3.amazonaws.com
x-amz-date: Fri, 28 Jan 2011 21:32:02 GMT
Range: bytes=0-9
Authorization: AWS AKIAIOSFODNN7EXAMPLE:Yxg83MZaEgh3OZ3l0rLo5RTX11o=
Sample Response with Specified Range of the Object Bytes

现在我有一个 s3 url,如下所示:

http://s3.amazonaws.com/bucket-name/foo/1/2/3/4/file.jpg

如何将其转换为文档中指定的请求类型?我知道这是补救措施,但我被困住了,这感觉有点不透明,尽管那可能只是我。

请帮我解构 GET 请求示例的组件的 s3 url。感谢帮助!

更新:如果我要使用 GetObjectRequest api,我将在构造函数中使用什么存储桶和 key ?

更新2:换句话说,是不是很简单

// modelled after http://s3.amazonaws.com/foo/
private String s3UrlToBucket(String s3Url)
{
Pattern pattern = Pattern.compile("^https?://[^/]+/([^/]+)/.*$");
Matcher matcher = pattern.matcher(s3Url);
if(matcher.find())
{
return matcher.group(1);
}
return null;
}

// modelled after http://s3.amazonaws.com/foo/1/2/3/4.jpg
private String s3UrlToKey(String s3Url)
{
Pattern pattern = Pattern.compile("^https?://[^/]+/[^/]+/(.*)$");
Matcher matcher = pattern.matcher(s3Url);
if(matcher.find())
{
return matcher.group(1);
}
return null;
}

更新3:你能给我解释一下这个键指的是什么吗???

最佳答案

如果您使用适用于 Java 的 AWS 开发工具包,您只需将范围设置为 GetObjectRequest 。这是一个代码示例:

AmazonS3Client s3Client = new AmazonS3Client();
GetObjectRequest request = new GetObjectRequest("bucket-name", "foo/1/2/3/4/file.jpg");
request.withRange(0, numberOfBytesToGet);
S3Object s3Object = s3Client.getObject(request);
//s3Object.getObjectContent() has a stream to your object.

关于object - 如何从 s3 url 获取文件(前 n 个字节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24537884/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com