0

我正在开发一个android应用程序,它需要从位于我的在线服务器上的文件夹中加载许多图像(在本例中是一个 GoDaddy 托管共享计划)。

所有图像都存储在GoDaddy 提供的 FileManager 文件夹内的图像文件夹中。

Glide需要一个 URL 来加载图像,但在我的情况下,这些图像不是公开的,并且无法从 HTTP URL 访问(并且应该保持这种方式)。

我想使用 glide 来加载这些远程存储的图像,就像我可以通过在本地机器上提供图像的本地路径来在本地这样做一样

例如,此代码在 path = (C:\Users\user\images\myImage.png) 注意到它不是https:// url 的地方有效。

Glide.with(mContext) .load(C:\Users\user\images\myImage.png) .into(mImageView);

这里提供的路径是本地的,可以在我的本地机器上使用,我想用 remoteStorageFolderPath 替换 localPath但我不确定它是如何完成的。任何帮助将不胜感激!谢谢你。

4

1 回答 1

0

所以我认为这已经作为Glides Github 中的一个问题提出,并由 TWiStErRob 于 2016 年 11 月 10 日解决。方法是添加一个授权标头,如下所示:

LazyHeaders auth = new LazyHeaders.Builder() // This can be cached in a field and reused later.
    .addHeader("Authorization", new BasicAuthorization(username, password))
    .build();

Glide
    .with(context)
    .load(new GlideUrl(url, auth)) // GlideUrl is created anyway so there's no extra objects allocated.
    .into(imageView);
}

public class BasicAuthorization implements LazyHeaderFactory {
    private final String username;
    private final String password;

    public BasicAuthorization(String username, String password) {
        this.username = username;
        this.password = password;
    }

    @Override
    public String buildHeader() {
        return "Basic " + Base64.encodeToString((username + ":" + password).getBytes(), Base64.NO_WRAP);
    }
}
于 2018-04-11T16:31:31.523 回答