gpt4 book ai didi

java - 如何在 OpenStack Object Storage(Swift) 中上传照片和其他文件

转载 作者:行者123 更新时间:2023-11-29 08:54:21 26 4
gpt4 key购买 nike

我正在制作一个 Android 应用程序并尝试存储文件,例如OpenStack 对象存储 (Swift) 中的 docx、音乐、照片、视频使用它的 API。但是我在存储这些文件时遇到了问题。从我得到的 API 中,它只存储文件名,但当我尝试从仪表板下载它时,对象本身丢失了。

我从OpenStack文档中得到的API是这样的。

方法: PUT链接: (mylink)/v1/AUTH_(account)/(container)/(object)

标题内容类型:(必填)X-Auth-Token:(必填)内容长度:(可选)电子标签:(可选)内容处置:(可选)内容编码:(可选)X-删除-在:(可选)X 对象元 PIN:X-删除后:X 对象元

body

我尝试上传的第一个文件是一张照片,我尝试将其作为二进制 (base64) 发送,因为 base 在 API 中也只接受字符串。我不确定把它放在哪里,所以我尝试将它推送到 Content-Disposition 中,但它失败了。我不确定我还能把照片放在 openstack 可以接受的有限数据上。

请帮忙。我想查看我从手机上传的文件并从仪表板下载。

这是我的代码:

        HttpClient httpclient = new DefaultHttpClient();
HttpPut httpost = new HttpPut("mylink/v1/AUTH_fa6362c6520449f9a8905e84fee68f8c/photos/"+imagename);
try {
httpost.setHeader("X-Auth-Token", "nasbfdblfdfsdfsdfd123a");
httpost.setHeader("Content-Type", "application/octet-stream");
httpost.setHeader("Content-Length ", Integer.toString(binaryimagelength) );
httpost.setHeader("Content-Disposition ", binaryimage);// this is path of the image from the phone memory (e.g. )

Log.i("", "pushing your data");

HttpResponse response=httpclient.execute(httpost);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String response2 = httpclient.execute(httpost, responseHandler);
Log.i("", "Response1: " + response.getStatusLine());
Log.i("", "Response2: " + response2);


}catch (IOException e) {
Log.e("", "IOException " + e.toString());
// TODO Auto-generated catch block

AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this,AlertDialog.THEME_DEVICE_DEFAULT_LIGHT).create();
alertDialog.setTitle("Error");
alertDialog.setMessage(e.toString());
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Add your code for the button here.

}
});
alertDialog.show();
}

最佳答案

在您的代码中,您将 content-disposition 指定为文件路径。

Try to make specify file object there. That is you read file from file path and set content-disposition with fileReadObject.

注意:我是 python 人。如果您愿意,我可以用 Python 代码进行解释。

关于java - 如何在 OpenStack Object Storage(Swift) 中上传照片和其他文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21105194/

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