python oci:Oracle 云基础设施:如何列出存储桶中的文件

python oci:Oracle Cloud Infrastruture: How to list files in a bucket

我正在尝试打印 Oracle 云上存储桶中的文件。我已经为它安装了 oci 库并走到了这一步。现在我不知道如何获取特定存储桶中的文件列表。

import os,oci
from oci.config import validate_config

tenancyId="sdkfh" # Your tenancies OCID.
authUserId="sdjfs"; # The OCID of the user ID being used.
OCI_KEY_PATH="filename"; # Path of the key file.
keyFingerprint="12:13:14:15"; # The fingerprint of the key file being used

config = {
    "user": authUserId,
    "key_file": OCI_KEY_PATH,
    "fingerprint": keyFingerprint,
    "tenancy": tenancyId,
    "region": "us-phoenix-1"
}

validate_config(config)

identity = oci.identity.IdentityClient(config)
user = identity.get_user(config["user"]).data
print(user)

列出存储桶中的对象。

import os,oci
from oci.config import validate_config

tenancyId="sdkfh" # Your tenancies OCID.
authUserId="sdjfs"; # The OCID of the user ID being used.
OCI_KEY_PATH="filename"; # Path of the key file.
keyFingerprint="12:13:14:15"; # The fingerprint of the key file being used
namespace = "xyz"
bucket_name = "abc"
config = {
    "user": authUserId,
    "key_file": OCI_KEY_PATH,
    "fingerprint": keyFingerprint,
    "tenancy": tenancyId,
    "region": "us-phoenix-1"
}
#it validates the above fields for connection
validate_config(config)
# prefix and fields are optional paramater.
#prefix is for filename pattern but not a regex
#fields valid values - md5,name,timeCreated,size
object_storage_client = oci.object_storage.ObjectStorageClient(config)
object_list = object_storage_client.list_objects(namespace, bucket_name, prefix = filename , fields="name,timeCreated,size")
for o in object_list.data.objects:
    print(o.name)

输出: 具有给定字段的存储桶内的文件列表

假设您想要那些以文件名*开头的文件,而不是给前缀作为文件名。因为它不是正则表达式,所以 * 和其他东西将不起作用。在这里,我无法获得上次修改时间和其他各种领域。如果有人知道,请在这里告诉我。 Python Oracle 云基础设施 SDK Github Link 到 source

我看到问题已经得到解答,但这里有一种更优雅的方式来管理凭据。我将使用它来演示相同的代码。

OCI 在 ~/.oci/config 中有一个用于每个用户的用户凭据的目录。此配置文件使用类似于 INI 文件的语法。同样的示例如下所示:

[<profile-name>]
user=<user-ocid>
key_file=<private-key-path>
region=<region-name>
tenancy=<tenancy-ocid>
fingerprint=<public-key-fingerprint>

现在 OCI CLI 和 Python SDK 可以使用此配置文件。您可以使用包中的一个简单函数轻松读取凭据。

from oci.config import from_file

config = from_file(profile_name=<profile-name>)

现在您可以简单地使用这个配置对象来执行任何进一步的操作。