当我使用以下代码将文件上传到服务器Azure blob时,我遇到了与Azure Blob存储相关的错误。
CloudStorageAccount account;
CloudBlobClient serviceClient;
CloudBlobContainer container;
CloudBlockBlob blob;
final String bucketName = PropertyReader.getValue("aws.properties", bucket);
account = CloudStorageAccount.parse(storageConnectionString);
serviceClient = account.createCloudBlobClient();
// Container name must be lower case.
container = serviceClient.getContainerReference(bucketName);
container.createIfNotExist();
// Set anonymous access on the container.
BlobContainerPermissions containerPermissions;
containerPermissions = new BlobContainerPermissions();
containerPermissions.setPublicAccess(BlobContainerPublicAccessType.CONTAINER);
container.uploadPermissions(containerPermissions);
// Upload an image file.
blob = container.getBlockBlobReference(imageName);
blob.upload(imageStream, imageArray.length);
我使用该代码并在mycomputer的本地主机(Windows 8)上构建,它运行正常。但是,当我部署到服务器linux时,它会捕获异常
com.microsoft.windowsazure.services.core.storage.StorageException:服务器无法验证请求。确保正确形成Authorization标头的值,包括签名。
我在相关主题上发现了这个问题 - pull request 但它仍然没有帮助解决我的问题。我该如何解决这个问题?
答案 0 :(得分:0)
这是使用Java客户端库吗?如果这在您的本地计算机上有效,但在Linux服务器上则无效,则可能与客户端和服务器之间的高速缓存代理或类似内容有关。在任何情况下,如果您看到相同的代码在一个地方而不是另一个地方工作,那么很可能这是您的最终配置问题,而不是库错误。