相关疑难解决方法(0)

将图像从Android上传到GCS

我正在尝试将Android上的图片直接上传到Google云存储.但API似乎不起作用.他们有一些与App引擎绑定的Java示例.我没有看到任何被证明适用于Android的示例.

在Android上,我尝试使用json api上传图片.我能够上传图像对象,但它似乎已损坏.此外,生成身份验证令牌似乎也很棘手.

我现在很震惊.这个世界上有没有人尝试使用Java客户端或Json API从Android上传图像/视频并成功了?请有人指出我正确的方向.来自Google的这款Storage api的体验非常令人失望.如果有人这样做,请分享您的经验.下面是我尝试使用GCS的JSON API时从Android尝试的代码.

private static String uploadFile(RichMedia media) {
    DefaultHttpClient client = new DefaultHttpClient();
    Bitmap bitmap = BitmapUtils.getBitmap(media.getLocalUrl());
    HttpPost post = new HttpPost(GCS_ROOT + media.getLocalUrl() + "_" + System.currentTimeMillis());
    if(media.getType() == RichMedia.RichMediaType.PICTURE) {
        post.setHeader("Content-Type", "image/jpeg");
    } else {
        post.setHeader("Content-Type", "video/mp4");
    }
    post.setHeader("Authorization", "AIzaSyCzdmCMwiMzl6LD7R2obF0xSgnnx5rEfeI");
    //post.setHeader("Content-Length", String.valueOf(bitmap.getByteCount()));
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
    byte[] byteArray = stream.toByteArray();

    try {
        post.setEntity(new StringEntity(new Gson().toJson(byteArray).toString()));
        HttpResponse response = client.execute(post);
        BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        String eachLine = null; …
Run Code Online (Sandbox Code Playgroud)

android google-api-java-client google-cloud-storage

21
推荐指数
2
解决办法
2万
查看次数