Upload/download 文件 CloudRail Android/Dropbox

Upload/download files CloudRail Android/Dropbox

我正在使用 CloudRail 将 upload/download 文件从保管箱传送到我的 android 设备。我不知道如何实现 upload or the download 方法。在创建一个简单的 files.txt 来上传时,我迷失了文件路径目录。

我想做的是 write/read 将一个简单的字符串变量转换为 file.txt 并将其上传到保管箱。 在外部创建文件设备内存然后上传它们也是一种选择。

我也在 GitHub 对 CloudRail 示例进行了一些研究,但是有很多关于可视化界面的代码,我不需要,这让我很难找到解决方案。我还找到了一些与我的需求相关的post,但我无法重现。此外,我在 CloudRail 论坛上发帖时没有任何回复。

提前感谢您的宝贵时间

    private void uploadItem(final String name, final Uri uri) {
    startSpinner();
    new Thread(new Runnable() {
        @Override
        public void run() {
            InputStream fs = null;
            long size = -1;
            try {
                fs = getOwnActivity().getContentResolver().openInputStream(uri);
                size = getOwnActivity().getContentResolver().openAssetFileDescriptor(uri, "r").getLength();
            } catch (Exception e) {
                stopSpinner();
                getOwnActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(context, "Unable to access file!", Toast.LENGTH_SHORT).show();
                    }
                });
                return;
            }

            String next = currentPath;
            if(!currentPath.equals("/")) {
                next += "/";
            }
            next += name;
            getService().upload(next, fs, size, true);

            getOwnActivity().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    updateList();
                }
            });
        }
    }).start();
}

使用CloudRail SDK的上传功能一共使用了4个参数,如我们documentation:

所述
/**
 * @param path The destination path for the new file
 * @param stream The file content that will be uploaded
 * @param size The file size measured in bytes
 * @param overwrite Indicates if the file should be overwritten. Throws an error if set to false and the specified file already exists
 * @throws IllegalArgumentException Null or malformatted path, null stream or negative file size
 */
void upload(
    String path,
    InputStream stream,
    Long size,
    Boolean overwrite
);

如上所示,stream 参数应指向应上传的源字节,在您的情况下,stream 参数当前为 NULL.只要生成的字节在 stream 参数中发送,流来自何处(SD 卡、磁盘、内存等)并不重要。您的代码的可能解决方案是:(假设创建的文件存在且已成功加载)

File temp = new File(context.getFilesDir(), String.valueOf(System.nanoTime()));
        InputStream stream = new FileInputStream(temp);;
        long size = temp.length();
        dropbox.upload("/TestFolder",stream,size,true);