我想创建一个操作系统磁盘小于默认 127GB 的 Azure VM。我在Azure门户中找不到这样的选项,所以我尝试缩小磁盘。我还没有成功。
我知道我可以修剪(使用碎片整理工具)并缩小卷(使用磁盘管理),但这不会改变硬盘的“物理”大小。也就是说,如果我将磁盘缩小到 40GB,则只有 87GB 未分配,而 Blob 仍会报告 127GB。
我试图实现的目标是缩小 blob 以匹配分配的空间,从而促进更小的 VM 映像下载/导出(例如 40 与 127gb)。
感谢任何和所有的帮助。
有没有办法生成不需要指定 x-ms-blob-type 标头的 SAS url?
使用 asp.net 开发 API
是否可以将用户重定向到私有 azure blob 存储?我可以使用 SAS 密钥或 azure blob SDK 执行此操作吗?
例如我想做这样的事情:
var response = Request.CreateResponse(HttpStatusCode.Moved);
response.Headers.Location = new Uri(bloburl);
return response;
Run Code Online (Sandbox Code Playgroud)
是否可以通过将密钥放入 URL 来访问私有 blob?显然我不想放主钥匙。
当我尝试将 blob 上传到我的 azure 存储帐户时,收到以下错误响应
<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>OutOfRangeInput</Code>
<Message>One of the request inputs is out of range.
RequestId:--------------------------
Time:2017-10-29T07:13:37.4218874Z
</Message>
</Error>
Run Code Online (Sandbox Code Playgroud)
我正在上传多个 blob,其中一些已成功上传,而另一些则未成功。引发错误的错误具有较大的 blob 名称(大约 100 个字符),因此假设这可能是由于 blob 名称大小所致。但根据https://blogs.msdn.microsoft.com/jmstall/2014/06/12/azure-storage-naming-rules/,最大 blob 名称可以是 1024,而我的 blob 名称远小于该限制。
示例 blob 名称为“65/36/aluminium_03_group67_product_02pCube1_product_02group2_product_02Flow000_Albedo.png”
编辑代码以上传 blob。
要上传的代码是 JavaScript 代码。我正在将文件分成多个块并上传。这里是负责上传文件的函数
function AzureFileUpload(file, uploadUrl, successCallback, progressCallback, errorCallback){
this.file = file;
this.uploadUrl = uploadUrl;
this.successCallback = successCallback;
this.progressCallback = progressCallback;
this.errorCallback = errorCallback;
this.reader = new FileReader();
this.maxBlockSize = 256 * 1024;
this.blockIds = [];
this.totalBytesRemaining …Run Code Online (Sandbox Code Playgroud) 是否可以使用 Postgrespg_dump将备份写入 Azure Blob 存储?我在 postgres 数据库中的 VM 上有近 2TB 的数据,我需要将所有数据迁移到 Blob 存储。
我正在尝试将 blob 从一个目录复制到另一个目录中,然后从源中删除 blob。我已经尝试过下面的代码,但没有复制并粘贴到另一个文件夹中,但删除操作有效。
var cred = new StorageCredentials("storageName", "Key");
var account = new CloudStorageAccount(cred, true);
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("containerName");
CloudBlockBlob sourceBlob = container.GetBlockBlobReference("folder/test.jpg");
//this doesn't work
sourceBlob.StartCopyAsync(new Uri("destination url"));
//this works
sourceBlob.DeleteAsync();
Run Code Online (Sandbox Code Playgroud) 除了日志分析之外,还有其他方法可以确定 Azure 存储文件的上次访问时间吗?那么,有没有人遇到过这种情况,实现这一目标的最佳方法是什么?还是我太在意这个了?
提前谢谢您。
我正在开发允许用户下载 Azure Blob 存储项目的功能。
我正在尝试使用以下方法获取 blob 列表:
var list = await container.GetBlobsAsync(BlobTraits.All, BlobStates.All, string.Empty).ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)
这是我遇到的错误:
错误 CS1061“ConfiguredCancelableAsyncEnumerable”不包含“GetAwaiter”的定义,并且找不到接受“ConfiguredCancelableAsyncEnumerable”类型的第一个参数的可访问扩展方法“GetAwaiter”(您是否缺少 using 指令或程序集引用?)
C# 7.3 可以使用异步吗?或者使用异步调用来获取容器中的所有 blob,我需要升级到 8.0 C#?
如果我将代码更改为:
await foreach (BlobItem page in container.GetBlobsAsync(BlobTraits.None, BlobStates.None, string.Empty))
{
yield return container.GetBlobClient(page.Name);
}
Run Code Online (Sandbox Code Playgroud)
然后我有这个错误:
错误 CS8370 功能“异步流”在 C# 7.3 中不可用。请使用 8.0 或更高版本的语言。
我知道 GetBlobsAsync() 返回AsyncPageable<>,并且我假设它仅在 C# 8.0 中可用?
我正在尝试使用 python 从 blob 存储读取多个 CSV 文件。
我正在使用的代码是:
blob_service_client = BlobServiceClient.from_connection_string(connection_str)
container_client = blob_service_client.get_container_client(container)
blobs_list = container_client.list_blobs(folder_root)
for blob in blobs_list:
blob_client = blob_service_client.get_blob_client(container=container, blob="blob.name")
stream = blob_client.download_blob().content_as_text()
Run Code Online (Sandbox Code Playgroud)
我不确定存储在 pandas 数据框中读取的 CSV 文件的正确方法是什么。
我尝试使用:
df = df.append(pd.read_csv(StringIO(stream)))
Run Code Online (Sandbox Code Playgroud)
但这向我显示了一个错误。
知道我该怎么做吗?
我们正在使用parquet.net来编写 parquet 文件。我设置了一个包含 3 列和 2 行的简单架构:
// Set up the file structure
var UserKey = new Parquet.Data.DataColumn(
new DataField<Int32>("UserKey"),
new Int32[] { 1234, 12345}
);
var AADID = new Parquet.Data.DataColumn(
new DataField<string>("AADID"),
new string[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString() }
);
var UserLocale = new Parquet.Data.DataColumn(
new DataField<string>("UserLocale"),
new string[] { "en-US", "en-US" }
);
var schema = new Schema(UserKey.Field, AADID.Field, UserLocale.Field
);
Run Code Online (Sandbox Code Playgroud)
当使用 FileStream 写入本地文件时,会创建一个文件,当代码完成时,我可以在文件中看到两行(后面是 1 kb):
using (Stream fileStream = System.IO.File.OpenWrite("C:\\Temp\\Users.parquet")) {
using (var parquetWriter = new …Run Code Online (Sandbox Code Playgroud) azure ×6
c# ×4
asp.net ×1
pandas ×1
parquet ×1
parquet.net ×1
pg-dump ×1
postgresql ×1
python ×1
python-3.x ×1