如何添加NodeJs、S3、heroku直接上传到android?

2023-12-07

我试图了解如何将他们提供示例的方式从网站转换为 android/retrofit...

这是该网站的代码示例:

function get_signed_request(file){
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "/sign_s3?file_name="+file.name+"&file_type="+file.type);
    xhr.onreadystatechange = function(){
        if(xhr.readyState === 4){
            if(xhr.status === 200){
                var response = JSON.parse(xhr.responseText);
                upload_file(file, response.signed_request, response.url);
            }
            else{
                alert("Could not get signed URL.");
            }
        }
    };
    xhr.send();
}


function upload_file(file, signed_request, url){
    var xhr = new XMLHttpRequest();
    xhr.open("PUT", signed_request);
    xhr.setRequestHeader('x-amz-acl', 'public-read');
    xhr.onload = function() {
        if (xhr.status === 200) {
            document.getElementById("preview").src = url;
            document.getElementById("avatar_url").value = url;
        }
    };
    xhr.onerror = function() {
        alert("Could not upload file.");
    };
    xhr.send(file);
}

这是我的android改造尝试:

@GET("/sign_s3") 
        public void getSign(
                @Query("name") String userId,
                @Query("type") String type,
                Callback<UserResponse> callback);

        @Multipart
        @PUT("/{url}") 
        public void sendMedia(
                @Path("url") String signRequest,
                @Part("theNameToUse") String theNameToUse,
                @Part("isItAPicture") boolean isItAPicture, //if true it is a picture
                @Part("media") TypedFile media,
                Callback<UserResponse> callback);

用户响应:

ApiManager.getAsyncApi().getSign(name, type, new Callback<UserResponse>() {
            @Override
            public void success(UserResponse userResponse, Response response) {
sendMedia(response.signed_request);
            }

            @Override
            public void failure(RetrofitError error) {
throw error;
            }
        });

private sendApi(path) {


 ApiManager.getAsyncApi().sendMedia(path, title, isPictureNotvideo, media, new Callback<UserResponse>() {
            @Override
            public void success(UserResponse userResponse, Response response) {

            }

            @Override
            public void failure(RetrofitError error) {
throw error;
            }
        }); 
}

heroku 文档的链接是:https://devcenter.heroku.com/articles/s3-upload-node

response.signed_request 不起作用,也不是一个选项...如果我执行 response.getBody() 那是我唯一能看到或获取标头的东西...不知道如何获取签名的请求...


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何添加NodeJs、S3、heroku直接上传到android? 的相关文章

随机推荐

  • 是否有相当于 data.table::rleid 的 dplyr?

    data table提供了很好的便利功能 rleid对于游程编码 library data table DT data table grp rep c A B C A B c 2 2 3 1 2 value 1 10 rleid DT gr
  • 如何在 Weblogic 12c (12.1.3) 上部署 Spring Boot 应用程序?

    我正在尝试在 Weblogic 12c 12 1 3 上部署一个简单的 Spring Boot 应用程序 在开发人员环境中它确实可以完美运行 然而 当需要在战争中重新包装它并将其附加到耳朵上时 这似乎无法正确部署 这是堆栈跟踪
  • MySQL |如何让每个类别只选择一条记录?

    我有一个表 其中包含带有数据的记录 每个记录都属于一个类别 假设我有以下表格 ID Category Title Date 1 Cat 1 Ttl 1 2013 02 18 2 Cat 2 Ttl 2 2013 02 18 3 Cat 1
  • Laravel Pusher array_merge:期望参数 2 是一个数组,给定 null

    我正在按照 Pusher 的教程在网站上显示通知 一切都符合教程 但是当我尝试访问通知时 出现了这个特定的错误localhost 8000 test我不知道如何解决它 错误信息 预期结果 通知发送消息 输出 array merge 错误 相
  • SQL 视图中的动态架构名称

    我有两个数据集 一个是关于狗的数据 我的数据 第二个是匹配键的查找表 我无法控制这些数据 匹配的键定期更新 我想创建 Dog 数据集的视图 或实现相同目的的东西 它总是连接最近的匹配的键 此外 我需要能够内联引用它 就好像它是一张桌子一样
  • 请求期间出现意外异常

    我在用着apache cassandra 2 2 4 我有一个 4 四 节点集群 DC1 中的复制因子为 3 DC2 中的复制因子 1 其中 DC1 包含 3 三 个节点 DC2 包含 1 一 个节点 该集群中之前还有一些节点 但由于某种原
  • 使用SAF(存储访问框架)的Android SD卡写入权限

    经过大量关于如何在 SD 卡 android 5 及更高版本 中写入 和重命名 文件的发现后 我认为 android 提供的新 SAF 将需要获得用户的许可才能写入 SD 卡文件 我在这个文件管理器应用程序中看到ES文件浏览器最初它会按照以
  • 监视调用 Jest 中另一个函数的导入函数

    我试图监视由另一个函数调用的函数 这两个函数都驻留在外部文件中并导入 Funcs spec js import as Funcs from Funcs describe funcA gt it calls funcB gt jest spy
  • 如何制作这样的回归树?

    我想制作一棵如图所示的回归树 这棵树是用 Cubist 完成的 但我没有那个程序 我确实使用 R 和 Python 它似乎与 R 包 rpart 或 tree 不同 因为末端节点是线性公式而不仅仅是平均值 有什么办法可以使用 R 或其他一些
  • ASP.NET LinkBut​​ton OnClick 事件在主页上不起作用

    我有一个用户控件来处理用户登录到我的网站的情况 该用户控件作为快速登录框放置在所有页面的右上角 我遇到的问题是 在我的生产服务器上 我为登录和重置提供的 LinkBut ton 单击事件在回发后不会触发 OnClick 事件 就像它只是忘记
  • 使用 python 正则表达式删除括号之间的内容

    我有一个文本文件 例如 a abc b c d 我想删除这些括号之间的内容 and 所以输出应该是 abc 我删除了括号之间的内容 但无法删除这之间的内容 我试过下面的代码 import re with open data txt as f
  • Mac 上的 VBA (Excel) 词典?

    我有一个 Excel VBA 项目 该项目大量使用 Windows 脚本字典对象 我最近有一位用户尝试在 Mac 上使用它并收到以下错误 Compile Error Can t find project or library 这是使用的结果
  • 在网页上加载 javascript 时输入意外结束

    我的 输入意外结束 的情况与我迄今为止在 SO 和其他论坛中发现的所有情况有所不同 坦白说 我被困住了 我在 CentOS 机器上安装了 JBoss EAP 6 4 尝试在 Windows 7 机器上打开管理控制台 MS 的所有最新补丁 都
  • 为什么 emplace_back() 会有这样的行为?

    为什么 Base 在调用 emplace back 之后立即被调用 为什么在析构函数调用后可以访问 sayHello 为什么 Base 再次被调用 include
  • IE11 Selenium WebDriverException:无法导航。 (org.openqa.selenium.WebDriverException ...IWebBrowser2::Navigate2() 失败

    我是自动化测试新手 虽然我的 Selenium 测试在 Chrome 和 Firefox 上运行 但它们没有在 IE11 上运行 我做了下面详细说明的所有检查 但我不断遇到此错误 org openqa selenium WebDriverE
  • 如何一次只打开 1 个手风琴

    accordion on click accordion control function e e preventDefault this next accordion panel not animated slideToggle ul c
  • 将 SMB 添加到 Windows,这有多安全?

    我遇到了一个小黑客 它声称它可以在 Windows 上启用 smb 抱怨是这样的事情 a href text a 没工作 虽然您确实可以在 url 中使用 file 但用户希望使用 smb 以便它是跨平台的 黑客攻击的过程如下 1 创建这个
  • MySQL IFNULL“N/A”产生“在集合中找不到项目”错误

    我一直在使用 ISNULL 函数在 mySQL 查询中将 NULL 值转换为零 如下所示 SELECT IFNULL mem comment count 0 FROM members 这很好用 我现在尝试使用 IFNULL 函数将 NULL
  • 使用 Python gtk3 在 X 上进行全局键绑定

    我正在寻找一些可以与 gtk3 一起使用的 python xlib 全局键绑定示例 就像为 gtk2 所做的那样http www siafoo net snippet 239 这里的代码非常相似 from Xlib display impo
  • 如何添加NodeJs、S3、heroku直接上传到android?

    我试图了解如何将他们提供示例的方式从网站转换为 android retrofit 这是该网站的代码示例 function get signed request file var xhr new XMLHttpRequest xhr open