使用 OkHttp 或 Retrofit 将文件上传到 AWS S3 存储桶

Posted

技术标签:

【中文标题】使用 OkHttp 或 Retrofit 将文件上传到 AWS S3 存储桶【英文标题】:Upload files to AWS S3 bucket either using OkHttp or Retrofit 【发布时间】:2015-09-10 10:26:04 【问题描述】:

有没有使用 Square 的 OkHttp 库或 Retrofit 库将文件上传到 S3 存储桶的示例?我正在寻找一些示例,在这些示例中,我可以使用预签名查询使用这些库上传文件。

【问题讨论】:

对 here,在 Stack Overflow 中。也许这个问题和一些答案可以帮助你。 【参考方案1】:

我或多或少地从一些预生产代码中复制了这个:

OkHttpClient.Builder builder = new OkHttpClient.Builder().proxy(proxy).writeTimeout(10, TimeUnit.MINUTES);
this.client = builder.build();
// ...
Request.Builder requestBuilder = new Request.Builder().url(uploadUrl);
for (TagEntry entry : item.getUploadUrlHeaders()) 
    requestBuilder.addHeader(entry.getKey(), entry.getValue());


RequestBody requestBody = RequestBody.create(BINARY_MEDIA_TYPE, file.toFile());
requestBuilder.put(requestBody);
final Response response = client.newCall(requestBuilder.build()).execute();
assert response.isSuccessful();

【讨论】:

以上是关于使用 OkHttp 或 Retrofit 将文件上传到 AWS S3 存储桶的主要内容,如果未能解决你的问题,请参考以下文章

Retrofit/Okhttp API接口加固技术实践(上)

OkHttp 和 Retrofit 无限 Post 请求在后台

Retrofit2 和 OkHttp3 仅在发生错误时使用缓存,例如网络错误或达到配额限制

Android OkHttp + Retrofit 下载文件与进度监听

Android 网络库的比较:OkHTTP、Retrofit 和 Volley [关闭]

OKHttp Authenticator 不适用于 Retrofit 暂停乐趣