我正在使用 Azure Blob 存储来上传/下载文件。问题是,如果我将任何新文件上传到与已上传文件同名的 azure blob,那么它会自动覆盖以前上传的文件的内容。
例如
这些是上传到 azure blob 存储上的文件 -
因此,如果我上传一个名为“file1.docx”的新文件,该文件具有不同的内容。然后 blob 存储将替换之前上传的 file1.docx 。所以在这种情况下我会丢失以前上传的文件。
有什么方法可以让 blob 存储自动检测是否存在重复项,以便它可以在最后附加 _1 或 (1) 或任何其他方法来解决此问题?
此代码尝试列出 Blob 存储中的文件:
#!/usr/bin/env python3
import os
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient, __version__
from datetime import datetime, timedelta
import azure.cli.core as az
print(f"Azure Blob storage v{__version__} - Python quickstart sample")
account_name = "my_account"
container_name = "my_container"
path_on_datastore = "test/path"
def _create_sas(expire=timedelta(seconds=10)) -> str:
cli = az.get_default_cli()
expire_date = datetime.utcnow() + expire
expiry_string = datetime.strftime(expire_date, "%Y-%m-%dT%H:%M:%SZ")
cmd = ["storage", "container", "generate-sas", "--name", container_name, "--account-name",
account_name, "--permissions", "lr", "--expiry", expiry_string, "--auth-mode", "login", "--as-user"]
if cli.invoke(cmd) != 0:
raise RuntimeError("Could not receive …Run Code Online (Sandbox Code Playgroud) 我想在不使用门户(指标)的情况下检索天蓝色存储帐户的大小。如何通过 azure CLI 或 bash 脚本获取存储帐户的指标?有没有办法通过 azure CLI 或任何 bash 脚本来实现这一点?
azure azure-storage azure-cli azure-blob-storage azure-metrics-advisor
要求是确定存储帐户中热访问层 blob 和存档访问层 blob 的大小,以进行成本分析。我们如何计算 Azure Blob 的总大小?
azure azure-storage azure-blob-storage azure-storage-account
已使用 databricks 中的 pyspark 在 Azure Blob 存储中创建了按日期分区的 Parquet 文件,但在一个日期文件夹中收到了如此多的文件,例如 500 个文件。我需要使用 PySpark 减少文件数量,例如一个日期文件夹中的 10 或 15 个文件。
df.write.format("parquet").mode("overwrite").partitionBy("Date").save(
"/mnt/mydata.parquet"
)
Run Code Online (Sandbox Code Playgroud)
我尝试过coalesce:
df.write.format("parquet").mode("overwrite").partitionBy("Date").coalesce(15).save(
"/mnt/mydata.parquet"
)
Run Code Online (Sandbox Code Playgroud)
但会抛出错误:
AttributeError:“DataFrameWriter”对象没有属性“coalesce”
请帮忙。
azure ×4
apache-spark ×1
azure-cli ×1
blob ×1
databricks ×1
pyspark ×1
python ×1
python-3.x ×1
storage ×1