无需身份验证即可从 Dropbox 链接获取元数据

2023-12-06

我想检查版本更改/获取带有保管箱上共享链接的文本文件的元数据。我不会使用 dropbox api,因为它会让用户使用自己的帐户。我希望他们链接到我的帐户,但我无法手动执行此操作,因为我稍后可能会更改密码。

所以:没有身份验证令牌,只需从保管箱的共享链接获取元数据,以便我可以检查版本更改,如果版本已更改,则下载新文件的内容。

另外:我也愿意接受其他建议来使这项工作顺利进行。请详细解释一下您的解决方案。

更新的电子标签问题:

public void getFromOnlineTxtDatabase(){
        try{
            URL url = new URL("url-here");
            HttpURLConnection.setFollowRedirects(true);
            HttpURLConnection con = (HttpURLConnection) url.openConnection();
            con.setDoOutput(false);
            con.setReadTimeout(20000);
            con.setRequestProperty("Connection", "keep-alive");
            //get etag for update check
                String etag = con.getHeaderField("etag");
            //String etag= "";

            con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0");
            ((HttpURLConnection) con).setRequestMethod("GET");
            //System.out.println(con.getContentLength()) ;
            con.setConnectTimeout(5000);
            BufferedInputStream in = new BufferedInputStream(con.getInputStream());
            int responseCode = con.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                System.out.println(responseCode);
            }
            StringBuffer buffer = new StringBuffer();
            int chars_read;
            //int total = 0;
            while ((chars_read = in.read()) != -1) 
            {
                char g = (char) chars_read;
                buffer.append(g);
            }
            final String page = buffer.toString();
            //create password_ems.txt to internal
            if (fileExistance("data.txt")){
                File dir = getFilesDir();
                File file = new File(dir, "data.txt");
                boolean deleted = file.delete();
                stringToTxt(page, "data.txt");


            }else{
                stringToTxt(page, "data.txt");
            }

            if (fileExistance("data_etag.txt")){
                File dir = getFilesDir();
                File file = new File(dir, "etag.txt");
                boolean deleted = file.delete();
                stringToTxt(etag, "etag.txt");


            }else{
                //create etag_file
                stringToTxt(etag, "data_etag.txt");
            }

            //  Log.i("Page", page);
        }catch(Exception e){
            showDialog("Database Fetch Failure","Unable to Fetch Password Database, check your internet" +
                    " connection and try again later.",0);
            Log.i("Page", "Error");
        }

    }

如果您执行 HTTPHEAD针对公共或共享 Dropbox URL 的请求,除其他外,您将获得etag标头。我不知道这种行为是否得到保证,因为我认为它没有在任何地方记录下来,但至少现在etagheader 可用于确定文件何时发生更改。 (如果etag不同,文件已更改。)

EDIT

一般来说,使用 ETag 时,最有效的做法是发出GET请求头为If-None-Match: <old etag>。如果内容未更改,则会响应 304,但如果内容已更改,则会按照正常方式下载新内容GET请求(响应将为 200)。

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

无需身份验证即可从 Dropbox 链接获取元数据 的相关文章

随机推荐

  • Android RecyclerView 复选框会自行检查

    我有一个 RecyclerView 它有一个复选框和文本视图 数字 10 20 30 40 直到 500 应显示在文本视图中 选中的复选框应在文本视图中添加与该复选框对应的数字 例如如果用户仅检查值 10 则 textView 将显示 10
  • Python 2.6 中导入 win32api 错误

    在Windows操作系统 64位 下运行python26时 我有这样的错误 import win32api error in Python 2 6 pywintypes26 dll or pythoncom26 dll missing Im
  • UnboundLocalError:局部变量...在赋值之前引用[重复]

    这个问题在这里已经有答案了 我得到一个UnboundLocalError因为我在 if 语句中使用了未执行的模板值 处理这种情况的标准方法是什么 class Test webapp RequestHandler def get self u
  • 内联元素的 box-shadow

    多行文本位于图像上 文本应该出现在白色背景上 就像胶带一样 文本的每一行的左侧和右侧都需要有一个小的填充 这可以通过内联文本的框阴影来实现 div slide background color black height 200px widt
  • Ruby on Rails:使用 Thin Start --ssl 时,force_ssl 不会从 http 重定向到 https

    我一直在尝试将我的rails项目配置为使用SSL 作为应用程序范围 和thin 通过添加thin gem并放置config force ssl true to application rb 但结果 我遇到了一个恼人的问题 当我使用以下命令启
  • 如何将 flutter windows 应用程序与 firebase 集成? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我正在尝试使用 flutter 创建 Windows 应用程序 并且想使用 firebase 进行身份验证并使用 firestore 来存储数据 那么我该如何整合它呢 首先 使用fir
  • 从长形式到宽形式没有 id.var?

    我有一些长格式的数据 如下所示 dat1 data frame id rep LETTERS 1 2 each 4 value 1 8 以表格形式 id value A 1 A 2 A 3 A 4 B 5 B 6 B 7 B 8 我希望它是
  • R 中的舍入误差?

    考虑以下 gt x lt 178379 4999999999999999999999999999999 gt x 1 178379 5 gt round x 1 178380 这似乎是一个基本的舍入错误 R 中是否存在已知的舍入误差 或者是
  • 如何恢复未提交的更改(包括文件和文件夹)?

    是否有 Git 命令可以恢复工作树和索引中所有未提交的更改 并删除新创建的文件和文件夹 您可以运行这两个命令 Revert changes to modified files git reset hard Remove all untrac
  • matplotlib.pyplot 格式字符串 kwarg?

    我正在读matplotlib docs 我正在努力寻找 格式字符串 的关键字参数 或者它只是一个位置参数 这是一个具体的pyplot论点 有点像旧的论点的残余pylab In ro r表示红色 o 表示圆形标记 参数可以这样设置 color
  • 如何验证函数的多个输入?

    我有一个 Validator 类 它允许我们使用 setter 方法设置其成员变量 主要是布尔值 的值 mv1 mv2 mv3 等 让我们将所有这些变量称为 设置 所有 setter 方法都返回此 Validator 而不是通常的 void
  • 使用 LDAP 和组成员身份的 Spring Security

    我正在使用 spring security 来验证用户是否输入了有效的用户名和密码 我还想验证用户是否属于特定组 虽然凭据验证有效 但组成员身份验证无效 我需要配置 ldapAuthoritiesPopulator 吗 虽然凭据验证有效 但
  • 使用 Maven 或 JBoss Tools 在 Eclipse 上添加 JBoss AS 7 模块

    我正在将我的项目迁移到 JBoss AS 7 并且我已经阅读了一些有关其模块的信息 我的问题很简单 我认为 我不知道如何在开发阶段包含这个模块 例如 我使用 hibernate 在 Eclipse 中使用 JBoss Tools 和 JBo
  • 删除除文件名 php 之外的所有内容

    我试图删除文件名 ex 之前的所有内容 home mike whatever test 1 txt 只留下test 1 txt 最简单的方法是什么 thanks basename
  • 在 iPhone 核心数据中的一对多关系上使用级联删除规则和 validateForDelete

    Preface 我有两个实体定义为一对多关系 A B B 与 A 的关系称为 myAs 是一种以 Nullify 作为删除规则的一对多关系 A到B的逆关系是一对一关系 以Cascade为删除规则 我已经在 B 类上实现了 validateF
  • 使用 HTML 表单隐藏元素传递数组

    我试图在隐藏字段中发布一个数组 并希望在 PHP 中提交表单后检索该数组 postvalue array a b c
  • PowerShell 如何处理“.”在路径中?

    打开 PowerShell 终端时请考虑以下命令序列 PS C Users username gt cd source PS C Users username source gt dir temp PS C Users username s
  • Linux内核中如何加入线程?

    主要问题是 我们如何等待 Linux 内核中的线程完成 我看过一些关于在 Linux 内核中处理线程的正确方法的帖子 但我不确定我们如何等待主线程中的单个线程完成 假设我们需要线程 3 完成然后继续 include
  • 是否有在 docker alpine linux 基础映像上设置 glibc 的最佳实践?

    是否有在 docker alpine linux 基础映像上使用正确路径设置 glibc 的最佳实践 以便任何生成的进程都可以正确引用已安装 libc 库的位置 就在这里 我使用了定制的 glibc 在其上安装了 JRE 你可以找到它her
  • 无需身份验证即可从 Dropbox 链接获取元数据

    我想检查版本更改 获取带有保管箱上共享链接的文本文件的元数据 我不会使用 dropbox api 因为它会让用户使用自己的帐户 我希望他们链接到我的帐户 但我无法手动执行此操作 因为我稍后可能会更改密码 所以 没有身份验证令牌 只需从保管箱