我在此本地 URL 中使用 WebApi 上传了保存在 Azure 存储模拟器中的图像
http://127.0.0.1:10000/devstoreaccount1/imagesprofile/bvv.jpg
我可以通过浏览器访问,它会立即下载它,但是当我尝试与Android Picasso一起使用时,它不起作用!所以我首先创建了一个具有公共权限的容器:
CloudStorageAccount storageAccount =
CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("imagesprofile");
container.CreateIfNotExists();
container.SetPermissions(
new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
并上传图片:
public async Task uploadImage(string ctn,string profileName,byte[] imageSource)
{
CloudStorageAccount storageAccount =
CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(ctn);
CloudBlockBlob block = container.GetBlockBlobReference(profileName + ".jpg");
using (var stream = new MemoryStream(imageSource, writable: false))
{
await block.UploadFromStreamAsync(stream);
}
}
但是当我尝试用毕加索阅读这个 URL 时,我什么也没得到:
Picasso.with(this).load("http://127.0.0.1:10000/devstoreaccount1/imagesprofile/bvv.jpg")
.transform(new CircleTransform()).into(photo);