Usar Utilitários Python do Oracle Cloud Infrastructure Object Storage para Operações em Massa

Introdução

O Oracle Cloud Infrastructure (OCI) Object Storage permite que os clientes armazenem com segurança qualquer tipo de dados em seu formato nativo. Com redundância integrada, o OCI Object Storage é ideal para criar aplicativos modernos que exigem escala e flexibilidade, pois pode ser usado para consolidar várias fontes de dados para fins de análise, backup ou arquivamento.

O OCI Object Storage é fundamental para as cargas de trabalho na nuvem; sua elasticidade, escalabilidade, confiabilidade e eficiência de custos o tornaram o principal armazenamento para dados não estruturados na nuvem. Como resultado de sua popularidade, há um vasto ecossistema de ferramentas para trabalhar com o OCI Object Storage. Este tutorial é o primeiro da série de "ferramentas de energia" que visa fornecer um caminho para os usuários se familiarizarem com as várias ferramentas disponíveis e como utilizá-las em suas cargas de trabalho.

Este primeiro tutorial apresenta os exemplos de scripts disponíveis em GitHub usando o Python SDK com o OCI Object Storage para operações em massa.

Público-alvo

DevOps engenheiros, desenvolvedores, administradores e usuários do OCI Object Storage, gerentes de TI, usuários avançados da OCI e administradores de aplicativos.

Objetivo

Pré-requisitos

Tarefa 1: Configurar o Ambiente

  1. Instale o pacote SDK (Software Development Kit, Kit de desenvolvimento de software) do OCI.

    pip3 install --user oci
    
  2. Clone o repositório do OCI SDK.

    $ git clone https://github.com/oracle/oci-python-sdk
    Cloning into 'oci-python-sdk'...
    remote: Enumerating objects: 113452, done.
    remote: Counting objects: 100% (23584/23584), done.
    remote: Compressing objects: 100% (3022/3022), done.
    remote: Total 113452 (delta 20706), reused 23195 (delta 20521), pack-reused 89868
    Receiving objects: 100% (113452/113452), 77.07 MiB | 12.78 MiB/s, done.
    Resolving deltas: 100% (104373/104373), done.
    

    Observação: Estes são exemplos de scripts que usam o SDK do OCI Python; eles não são aplicativos Oracle oficiais e não são mantidos ou suportados pela Oracle. Como eles são exemplos, talvez você queira revisá-los, atualizá-los e personalizá-los para seu caso de uso em seu próprio repositório de software.

  3. Altere para o diretório de exemplo. Se instalado no diretório home, execute o comando a seguir.

    cd $HOME/oci-python-sdk/examples/object_storage
    

Tarefa 2: Usar o script de restauração em lote de objetos

O script de restauração em massa restaura objetos arquivados no bucket de origem com threads paralelos.

  1. Execute o script de restauração em massa sem argumentos para ver os argumentos necessários.

    $ python object_storage_bulk_restore.py
    Source bucket parameter is required !!!
    
    usage: object_storage_bulk_restore.py [-h] [-t CONFIG_PROFILE] [-p PROXY]
                                          [-ip] [-dt] [-c CONFIG_FILE]
                                          [-sb SOURCE_BUCKET]
                                          [-sp SOURCE_PREFIX_INCLUDE]
                                          [-sr SOURCE_REGION]
                                          [-sn SOURCE_NAMESPACE]
    
    optional arguments:
      -h, --help            show this help message and exit
      -t CONFIG_PROFILE     Config file section to use (tenancy profile)
      -p PROXY              Set Proxy (i.e. www-proxy-server.com:80)
      -ip                   Use Instance Principals for Authentication
      -dt                   Use Delegation Token for Authentication
      -c CONFIG_FILE        Config File (default=~/.oci/config)
      -sb SOURCE_BUCKET     Source Bucket Name
      -sp SOURCE_PREFIX_INCLUDE
                            Source Prefix Include
      -sr SOURCE_REGION     Source Region
      -sn SOURCE_NAMESPACE  Source Namespace (Default current connection)
    

    Observação: Este tutorial usará o arquivo de configuração para todos os scripts. Os scripts serão padronizados para a região listada no arquivo de configuração, se não for especificado como um argumento de script.

  2. Execute o script sem usar o argumento de prefixo. Isso restaurará todos os objetos de arquivamento.

    $ python object_storage_bulk_restore.py -c $HOME/.oci/config -sb MyBucket
    
    Connecting to Object Storage Service...
    Succeed.
    
    ##########################################################################################
    #                          Running Object Storage Bulk Restore                           #
    ##########################################################################################
    Written by Tim S and Adi Z, July 2020
    Starts at             : 2024-05-30 16:44:18
    Command Line          : -c /home/opc/.oci/config -sb MyBucket
    Source Namespace      : namespace
    Source Bucket         : MyBucket
    Source Prefix Include :
    
    ##########################################################################################
    #                                    Start Processing                                    #
    ##########################################################################################
    16:44:18 - Creating 40 workers.
    16:44:18 - Getting list of objects from source source_bucket (MyBucket). Restores will start immediately.
    16:44:19 - Enqueued 9086 objects to be restored
    16:44:19 - Waiting 60 seconds before checking status.
    16:45:19 - Restoration of all objects has been requested.
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-30 16:45:19
    

    Observação: Os objetos restaurados não estão imediatamente disponíveis. A restauração leva no máximo uma hora a partir do momento que uma solicitação para restauração de armazenamento de arquivos é feita, até o momento que o primeiro byte de dados é recuperado.

  3. Execute o script com o argumento de prefixo.

    $ python object_storage_bulk_restore.py -c $HOME/.oci/config -sb MyBucket -sp folder1
    
    Connecting to Object Storage Service...
    Succeed.
    
    ##########################################################################################
    #                          Running Object Storage Bulk Restore                           #
    ##########################################################################################
    Written by Tim S and Adi Z, July 2020
    Starts at             : 2024-05-30 17:00:09
    Command Line          : -c /home/opc/.oci/config -sb MyBucket -sp folder1
    Source Namespace      : namespace
    Source Bucket         : MyBucket
    Source Prefix Include : folder1
    
    ##########################################################################################
    #                                    Start Processing                                    #
    ##########################################################################################
    17:00:09 - Creating 40 workers.
    17:00:09 - Getting list of objects from source source_bucket (MyBucket). Restores will start immediately.
    17:00:10 - Enqueued 1096 objects to be restored
    17:00:10 - Waiting 60 seconds before checking status.
    17:01:10 - Restoration of all objects has been requested.
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-30 17:01:10
    

    Observação: todos os objetos arquivados no prefixo/pasta nomeado e subprefixos/subpastas serão restaurados.

Tarefa 3: Usar o script Object Bulk Delete

O script de exclusão em massa do objeto exclui objetos de um bucket com a opção de filtrar.

  1. Execute o script sem argumentos para ver o uso.

    $ python object_storage_bulk_delete.py
    Source bucket parameter is required !!!
    
    usage: object_storage_bulk_delete.py [-h] [-t CONFIG_PROFILE] [-p PROXY] [-ip]
                                        [-dt] [-c CONFIG_FILE]
                                        [-sb SOURCE_BUCKET] [-sp SOURCE_PREFIX]
                                        [-se SOURCE_PREFIX_EXCLUDE]
                                        [-exclude_dirs] [-sn SOURCE_NAMESPACE]
                                        [-sr SOURCE_REGION]
    
    optional arguments:
      -h, --help            show this help message and exit
      -t CONFIG_PROFILE     Config file section to use (tenancy profile)
      -p PROXY              Set Proxy (i.e. www-proxy-server.com:80)
      -ip                   Use Instance Principals for Authentication
      -dt                   Use Delegation Token for Authentication
      -c CONFIG_FILE        Config File (default=~/.oci/config)
      -sb SOURCE_BUCKET     Source Bucket Name
      -sp SOURCE_PREFIX     Source Prefix Include
      -se SOURCE_PREFIX_EXCLUDE
                            Source Prefix Exclude
      -exclude_dirs         Exclude Directories
      -sn SOURCE_NAMESPACE  Source Namespace (Default current connection)
      -sr SOURCE_REGION     Source Region
    

    Observação: A execução do script sem um prefixo de inclusão ou exclusão excluirá todos os itens do bloco.

  2. Execute o script de exclusão em massa e defina um prefixo de inclusão, revise a saída e responda ao prompt y/N.

    Observação: todos os objetos no prefixo/pasta e subprefixos/subpastas serão excluídos. Tenha cuidado ao executar o comando. Se nenhuma correspondência for encontrada, todos os itens do bloco serão excluídos.

    $ python object_storage_bulk_delete.py  -c $HOME/.oci/config -sb MyBucket -sp folder1
    
    Connecting to Object Storage Service...
    Succeed.
    
    ##########################################################################################
    #                           Running Object Storage Bulk Delete                           #
    ##########################################################################################
    Written by Adi Zohar, July 2020
    Starts at             : 2024-05-30 18:51:32
    Command Line          : -c /home/opc/.oci/config -sb MyBucket -sp folder1
    Source Namespace      : namespace
    Source Bucket         : MyBucket
    Source Prefix Include : folder1
    Source Prefix Exclude :
    Source Region         : us-ashburn-1
    
    Are you sure you want to continue deleting ? [y/N]: y
    
    ##########################################################################################
    #                                    Start Processing                                    #
    ##########################################################################################
    18:51:38 - Creating 40 workers.
    18:51:38 - Getting list of objects from source source_bucket (MyBucket). delete will start immediately.
    18:51:38 - Enqueued 700 objects to be deleted
    18:51:38 - Waiting 60 seconds before checking status.
    18:52:38 - deletion of all objects has been requested.
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-30 18:52:38
    
  3. Execute o script de exclusão em massa com o prefixo de exclusão.

    $ python object_storage_bulk_delete.py  -c $HOME/.oci/config -sb MyBucket -se folder1
    
    Connecting to Object Storage Service...
    Succeed.
    
    ##########################################################################################
    #                           Running Object Storage Bulk Delete                           #
    ##########################################################################################
    Written by Adi Zohar, July 2020
    Starts at             : 2024-05-30 19:02:53
    Command Line          : -c /home/opc/.oci/config -sb MyBucket -se folder1
    Source Namespace      : namespace
    Source Bucket         : MyBucket
    Source Prefix Include :
    Source Prefix Exclude : folder1
    Source Region         : us-ashburn-1
    
    Are you sure you want to continue deleting ? [y/N]: y
    
    ##########################################################################################
    #                                    Start Processing                                    #
    ##########################################################################################
    19:02:58 - Creating 40 workers.
    19:02:58 - Getting list of objects from source source_bucket (MyBucket). delete will start immediately.
    19:02:58 - Enqueued 60 objects to be deleted
    19:02:58 - Waiting 60 seconds before checking status.
    19:03:58 - deletion of all objects has been requested.
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-30 19:03:58
    

    Observação: todos os objetos no bucket que não estiverem no prefixo/pasta de exclusão serão excluídos. Tenha cuidado ao executar este script. Se nenhuma correspondência for encontrada, todos os objetos do bucket serão excluídos.

Tarefa 4: Usar o script de renomeação em lote de objetos

O script de renomeação em massa pode ser usado para renomear objetos ou para mover objetos para uma pasta/prefixo diferente. É importante entender que o script de renomeação simplesmente altera os metadados do nome no objeto, não é uma cópia do objeto, é apenas uma renomeação.

  1. Execute o script de renomeação em massa do objeto sem argumentos para ver os parâmetros necessários.

    $ python object_storage_bulk_rename.py
    Source bucket parameter is required !!!
    
    usage: object_storage_bulk_rename.py [-h] [-t CONFIG_PROFILE] [-p PROXY] [-ip]
                                        [-dt] [-c CONFIG_FILE]
                                        [-sb SOURCE_BUCKET]
                                        [-sp SOURCE_PREFIX_INCLUDE]
                                        [-sr SOURCE_REGION]
                                        [-sn SOURCE_NAMESPACE]
                                        [-textrem TEXT_REMOVE]
                                        [-textadd TEXT_APPEND]
    
    optional arguments:
      -h, --help            show this help message and exit
      -t CONFIG_PROFILE     Config file section to use (tenancy profile)
      -p PROXY              Set Proxy (i.e. www-proxy-server.com:80)
      -ip                   Use Instance Principals for Authentication
      -dt                   Use Delegation Token for Authentication
      -c CONFIG_FILE        Config File (default=~/.oci/config)
      -sb SOURCE_BUCKET     Source Bucket Name
      -sp SOURCE_PREFIX_INCLUDE
                            Source Prefix Include
      -sr SOURCE_REGION     Source Region
      -sn SOURCE_NAMESPACE  Source Namespace (Default current connection)
      -textrem TEXT_REMOVE  text remove prefix (can be used to remove folder)
      -textadd TEXT_APPEND  text append prefix (can be used to add folder)
    
  2. Execute uma lista de objetos do os para mostrar os objetos atuais no bucket.

    Objetos Existentes:

    $ oci os object list --bucket-name MyBucket --query "data[].name"
    [
      "file_1.txt",
      "file_10.txt",
      "file_2.txt",
      "file_3.txt",
      "file_4.txt",
      "file_5.txt",
      "file_6.txt",
      "file_7.txt",
      "file_8.txt",
      "file_9.txt",
      "hello_world"
    ]
    
  3. Execute o script de renomeação em massa do objeto para alterar o nome dos objetos por arquivo no início e substituí-lo por objeto.

    $ python object_storage_bulk_rename.py -c $HOME/.oci/config -sb MyBucket -textrem file -textadd object
    
    Connecting to Object Storage Service...
    Succeed.
    
    ##########################################################################################
    #                           Running Object Storage Bulk Rename                           #
    ##########################################################################################
    Written by Adi Z, March 2021
    Starts at             : 2024-05-31 23:09:13
    Command Line          : -c /home/opc/.oci/config -sb MyBucket -textrem file -textadd object
    Source Namespace      : namespace
    Source Bucket         : MyBucket
    Source Prefix Include : file
    Text Remove Prefix    : file
    Text Append Prefix    : object
    
    ##########################################################################################
    #                                    Start Processing                                    #
    ##########################################################################################
    23:09:13 - Creating 40 workers.
    23:09:13 - Getting list of objects from source source_bucket (MyBucket). Rename will start immediately.
    23:09:13 - Enqueued 10 objects to be Renamed
    23:09:13 - Waiting 60 seconds before checking status.
    23:10:13 - Rename of all objects has been requested.
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-31 23:10:13
    
  4. Execute uma lista de objetos do os para mostrar os objetos atuais no bucket e observe as alterações de nome.

    $ oci os object list --bucket-name MyBucket --query "data[].name"
    [
      "hello_world",
      "object_1.txt",
      "object_10.txt",
      "object_2.txt",
      "object_3.txt",
      "object_4.txt",
      "object_5.txt",
      "object_6.txt",
      "object_7.txt",
      "object_8.txt",
      "object_9.txt"
    ]
    
  5. Mova todos os objetos com a string object em seu nome para um diretório chamado dir1.

    $ python object_storage_bulk_rename.py -c $HOME/.oci/config -sb MyBucket -sp object -textadd dir1/
    
    Connecting to Object Storage Service...
    Succeed.
    
    ##########################################################################################
    #                           Running Object Storage Bulk Rename                           #
    ##########################################################################################
    Written by Adi Z, March 2021
    Starts at             : 2024-05-31 23:16:14
    Command Line          : -c /home/opc/.oci/config -sb MyBucket -sp object -textadd dir1/
    Source Namespace      : namespace
    Source Bucket         : MyBucket
    Source Prefix Include : object
    Text Remove Prefix    :
    Text Append Prefix    : dir1/
    
    ##########################################################################################
    #                                    Start Processing                                    #
    ##########################################################################################
    23:16:14 - Creating 40 workers.
    23:16:14 - Getting list of objects from source source_bucket (MyBucket). Rename will start immediately.
    23:16:15 - Enqueued 10 objects to be Renamed
    23:16:15 - Waiting 60 seconds before checking status.
    23:17:15 - Rename of all objects has been requested.
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-31 23:17:15
    
  6. Execute a lista de objetos do os para mostrar os objetos atuais no bucket novamente e observe os objetos que foram movidos para a pasta/prefixo chamada dir1.

    $ oci os object list --bucket-name MyBucket --query "data[].name"
    [
      "dir1/object_1.txt",
      "dir1/object_10.txt",
      "dir1/object_2.txt",
      "dir1/object_3.txt",
      "dir1/object_4.txt",
      "dir1/object_5.txt",
      "dir1/object_6.txt",
      "dir1/object_7.txt",
      "dir1/object_8.txt",
      "dir1/object_9.txt",
      "hello_world"
    ]
    

Tarefa 5: Usar o script de cópia em lote de objetos

O script de cópia em massa copia objetos entre buckets. Ele pode ser usado para copiar objetos entre buckets em diferentes regiões ou em diferentes tenancies. Este tutorial demonstrará uma cópia entre buckets na mesma tenancy entre regiões, um bucket no us-ashburn-1 e outro bucket no us-phoenix-1. Se você quiser usar o script entre tenancies, consulte Acessando Recursos do Serviço Object Storage entre Tenancies.

Observação: Existem ferramentas mais avançadas para copiar objetos em massa entre buckets, como Rclonar ou Replicação de Armazenamento Obeto.

  1. Execute o script de cópia em massa do objeto sem argumentos para entender os parâmetros necessários.

    $ python object_storage_bulk_copy.py
    usage: object_storage_bulk_copy.py [-h] [-t CONFIG_PROFILE] [-p PROXY] [-ip]
                                      [-dt] [-c CONFIG_FILE] [-sb SOURCE_BUCKET]
                                      [-sr SOURCE_REGION] [-sn SOURCE_NAMESPACE]
                                      [-sp SOURCE_PREFIX_INCLUDE]
                                      [-se SOURCE_PREFIX_EXCLUDE]
                                      [-db DESTINATION_BUCKET]
                                      [-dr DESTINATION_REGION]
                                      [-dn DESTINATION_NAMESPACE] [-ig]
    
    optional arguments:
      -h, --help            show this help message and exit
      -t CONFIG_PROFILE     Config file section to use (tenancy profile)
      -p PROXY              Set Proxy (i.e. www-proxy-server.com:80)
      -ip                   Use Instance Principals for Authentication
      -dt                   Use Delegation Token for Authentication
      -c CONFIG_FILE        Config File (default=~/.oci/config)
      -sb SOURCE_BUCKET     Source Bucket Name
      -sr SOURCE_REGION     Source Region (Default current connection)
      -sn SOURCE_NAMESPACE  Source Namespace (Default current connection)
      -sp SOURCE_PREFIX_INCLUDE
                            Source Prefix Include
      -se SOURCE_PREFIX_EXCLUDE
                            Source Prefix Exclude
      -db DESTINATION_BUCKET
                            Destination Bucket Name
      -dr DESTINATION_REGION
                            Destination Region
      -dn DESTINATION_NAMESPACE
                            Destination Namespace (Default current connection)
      -ig                   Ignore Check if files exist at Destination
    
  2. Execute o comando de cópia de objetos em massa para copiar objetos em uma pasta/prefixo para um bucket em outra região.

    Observação: Neste exemplo, o bucket de destino está vazio.

    $ python object_storage_bulk_copy.py -c $HOME/.oci/config -sb MySourceBucket -db MyDestBucket -dr us-phoenix-1
    
    ##########################################################################################
    #                              Connecting to Object Storage                              #
    ##########################################################################################
    
    Connecting to Object Storage Service for source region - us-ashburn-1
    Succeed.
    
    Connecting to Object Storage Service for destination region - us-phoenix-1
    Succeed.
    
    ##########################################################################################
    #                            Running Object Storage Bulk Copy                            #
    ##########################################################################################
    Written by Tim S and Adi Z, July 2020
    Starts at        : 2024-05-31 19:38:52
    Command Line     : -c /home/opc/.oci/config -sb MySourceBucket -db MyDestBucket
    Source Namespace : namespace
    Source Region    : us-ashburn-1
    Source Bucket    : MySourceBucket
    Source Prefix    :
    Dest   Namespace : namespace
    Dest   Region    : us-phoenix-1
    Dest   Bucket    : MyDestBucket
    State  File      : MySourceBucket.bulk.wrk
    
    ##########################################################################################
    #                                    Start Processing                                    #
    ##########################################################################################
    19:38:52 - Creating 50 copy request workers.
    19:38:52 - Creating 50 status workers.
    19:38:52 - Loading list of objects from destination bucket (MyDestBucket) to ignore exiting files.
    19:38:52 -    Loaded 0 files.
    19:38:52 - Getting list of objects from source bucket (MySourceBucket). Copies will start immediately.
    19:38:52 -    Enqueued 5 objects to be copied
    
    [...snip...]
    
    ##########################################################################################
    #                          Finish queuing files, start checking                          #
    ##########################################################################################
    19:38:52 - Waiting 60 seconds before checking status.
    19:39:52 - Determining copy status
    19:39:52 -    KNOWN: 1, REQUESTED: 0, COMPLETED: 4, FAILED: 0, CANCELED: 0
    

Tarefa 6: Usar o Script de Pastas da Lista de Armazenamento de Objetos

O script de pastas da lista de armazenamento de objetos lista cada pasta/prefixo no bucket, o tamanho total de todos os objetos (kilobytes) em cada pasta e uma contagem de objetos em cada pasta. Há uma opção para filtrar por prefixo/pasta.

  1. Execute o script da pasta da lista de objetos sem argumentos para entender as opções da linha de comando.

    $ python  object_storage_list_folders.py
    Source bucket parameter is required !!!
    
    usage: object_storage_list_folders.py [-h] [-t CONFIG_PROFILE] [-p PROXY]
                                          [-ip] [-dt] [-c CONFIG_FILE]
                                          [-sb SOURCE_BUCKET] [-sp SOURCE_PREFIX]
                                          [-sr SOURCE_REGION]
                                          [-sn SOURCE_NAMESPACE] [-f FILE]
    
    optional arguments:
      -h, --help            show this help message and exit
      -t CONFIG_PROFILE     Config file section to use (tenancy profile)
      -p PROXY              Set Proxy (i.e. www-proxy-server.com:80)
      -ip                   Use Instance Principals for Authentication
      -dt                   Use Delegation Token for Authentication
      -c CONFIG_FILE        Config File (default=~/.oci/config)
      -sb SOURCE_BUCKET     Source Bucket Name
      -sp SOURCE_PREFIX     Source Prefix Include
      -sr SOURCE_REGION     Source Region
      -sn SOURCE_NAMESPACE  Source Namespace (Default current connection)
      -f FILE               Output to file (as csv)
    
  2. Execute o script de pastas da lista de objetos em um bucket inteiro.

    $ python  object_storage_list_folders.py -c $HOME/.oci/config -sb MyBucket
    
    Connecting to Object Storage Service...
    Success.
    
    ##########################################################################################
    #                               Running List/Count Objects                               #
    ##########################################################################################
    Written By Adi Zohar, June 2020
    Starts at           :2024-05-30 21:25:06
    Command Line        : -c /home/opc/.oci/config -sb MyBucket
    Source Namespace    : namespace
    Source Bucket       : MyBucket
    Source Prefix       :
    
    ##########################################################################################
    #                                  Start Processing...                                   #
    ##########################################################################################
    Folder Name                                        |  Size (KB) |   Count
    --------------------------------------------------------------------------------
    dir_1/                                             | 10240000.00 |      10
    dir_10/                                            | 10240000.00 |      10
    dir_2/                                             | 10240000.00 |      10
    dir_3/                                             | 10240000.00 |      10
    dir_4/                                             | 10240000.00 |      10
    dir_5/                                             | 10240000.00 |      10
    dir_6/                                             | 10240000.00 |      10
    dir_7/                                             | 10240000.00 |      10
    dir_8/                                             | 10240000.00 |      10
    dir_9/                                             | 10240000.00 |      10
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-30 21:25:06
    Total Files  :                  103
    Total Size   :      137,069,854,720
    
  3. Execute o script de pastas da lista de objetos em uma pasta/prefixo específico.

    $ python  object_storage_list_folders.py -c $HOME/.oci/config -sb  MyBucket -sp dir_1/
    
    Connecting to Object Storage Service...
    Success.
    
    ##########################################################################################
    #                               Running List/Count Objects                               #
    ##########################################################################################
    Written By Adi Zohar, June 2020
    Starts at           :2024-05-30 21:27:41
    Command Line        : -c /home/opc/.oci/config -sb MyBucket -sp dir_1/
    Source Namespace    : namespace
    Source Bucket       : MyBucket
    Source Prefix       : dir_1/
    
    ##########################################################################################
    #                                  Start Processing...                                   #
    ##########################################################################################
    Folder Name                                        |  Size (KB) |   Count
    --------------------------------------------------------------------------------
    dir_1/                                             | 10240000.00 |      10
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-30 21:27:42
    Total Files  :                   10
    Total Size   :       10,485,760,000
    

Tarefa 7: Usar o Script de Objetos da Lista de Armazenamento de Objetos

O script da lista de objetos lista cada objeto no bucket, o tamanho em bytes de cada objeto, o tamanho total de todos os objetos e uma contagem de todos os objetos. Há uma opção para filtrar por prefixo/pasta. O script da lista de objetos também pode ser usado para pesquisar objetos em um bucket ou prefixo com base em uma string.

  1. Execute o script da lista de objetos em um bucket inteiro.

    $ python object_storage_list_objects.py -c  $HOME/.oci/config -sb MyBucket
    
    Connecting to Object Storage Service...
    Success.
    
    ##########################################################################################
    #                               Running List/Count Objects                               #
    ##########################################################################################
    Written By Adi Zohar, June 2020
    Starts at           :2024-05-31 18:25:16
    Command Line        : -c /home/opc/.oci/config -sb MyBucket
    Source Namespace    : namespace
    Source Bucket       : MyBucket
    Source Prefix       :
    Source Pre-Exclude  :
    
    ##########################################################################################
    #                                  Start Processing...                                   #
    ##########################################################################################
          10,737,418,240 | C 2024-01-30 23:58 | U 2024-01-30 23:58 | Standard          | 10GB-Testfile
          10,737,418,240 | C 2024-01-25 19:41 | U 2024-01-25 19:41 | Standard          | 10GB-file
          10,737,418,240 | C 2024-01-24 22:13 | U 2024-01-24 22:13 | Standard          | 10GB_file
          1,048,576,000 | C 2024-01-24 22:13 | U 2024-01-24 22:13 | Standard          | dir_1/file_1
          1,048,576,000 | C 2024-01-24 22:14 | U 2024-01-24 22:14 | Standard          | dir_1/file_10
    
    [...snip...]
    
          1,048,576,000 | C 2024-01-24 23:10 | U 2024-01-24 23:10 | Standard          | dir_9/file_8
          1,048,576,000 | C 2024-01-24 23:10 | U 2024-01-24 23:10 | Standard          | dir_9/file_9
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-31 18:25:16
    Total Files  :                  103
    Total Size   :      137,069,854,720
    
  2. Execute o script do objeto da lista e filtre por uma pasta/prefixo.

    $ python object_storage_list_objects.py -c  $HOME/.oci/config -sb MyBucket -sp dir_1/
    
    Connecting to Object Storage Service...
    Success.
    
    ##########################################################################################
    #                               Running List/Count Objects                               #
    ##########################################################################################
    Written By Adi Zohar, June 2020
    Starts at           :2024-05-31 18:49:49
    Command Line        : -c /home/opc/.oci/config -sb MyBucket -sp dir_1/
    Source Namespace    : namespace
    Source Bucket       : MyBucket
    Source Prefix       : dir_1/
    Source Pre-Exclude  :
    
    ##########################################################################################
    #                                  Start Processing...                                   #
    ##########################################################################################
          1,048,576,000 | C 2024-01-24 22:13 | U 2024-01-24 22:13 | Standard          | dir_1/file_1
          1,048,576,000 | C 2024-01-24 22:14 | U 2024-01-24 22:14 | Standard          | dir_1/file_10
          1,048,576,000 | C 2024-01-24 22:15 | U 2024-01-24 22:15 | Standard          | dir_1/file_2
          1,048,576,000 | C 2024-01-24 22:16 | U 2024-01-24 22:16 | Standard          | dir_1/file_3
          1,048,576,000 | C 2024-01-24 22:17 | U 2024-01-24 22:17 | Standard          | dir_1/file_4
          1,048,576,000 | C 2024-01-24 22:17 | U 2024-01-24 22:17 | Standard          | dir_1/file_5
          1,048,576,000 | C 2024-01-24 22:17 | U 2024-01-24 22:17 | Standard          | dir_1/file_6
          1,048,576,000 | C 2024-01-24 22:18 | U 2024-01-24 22:18 | Standard          | dir_1/file_7
          1,048,576,000 | C 2024-01-24 22:19 | U 2024-01-24 22:19 | Standard          | dir_1/file_8
          1,048,576,000 | C 2024-01-24 22:20 | U 2024-01-24 22:20 | Standard          | dir_1/file_9
    
    ##########################################################################################
    #                                       Completed                                        #
    ##########################################################################################
    Completed at :  2024-05-31 18:49:49
    Total Files  :                   10
    Total Size   :       10,485,760,000
    
  3. Execute o script de objeto de lista e filtre uma pasta/prefixo para uma string no início de um objeto em um prefixo/pasta.

$ python object_storage_list_objects.py -sb MyBucket -sp dir2/foo

Connecting to Object Storage Service...
Success.

##########################################################################################
#                               Running List/Count Objects                               #
##########################################################################################
Written By Adi Zohar, June 2020
Starts at           :2025-09-19 23:09:47
Command Line        : -sb ash-30M -sp dir2/foo
Source Namespace    : ocitsammut
Source Bucket       : MyBucket
Source Prefix       : dir2/foo
Source Pre-Exclude  : 

##########################################################################################
#                                  Start Processing...                                   #
##########################################################################################
                   4 | C 2025-09-19 21:34 | U 2025-09-19 21:34 | Standard          | dirr2/foo.txt
                   4 | C 2025-09-19 21:34 | U 2025-09-19 21:34 | Standard          | dir2/foo1.txt
                   4 | C 2025-09-19 21:34 | U 2025-09-19 21:34 | Standard          | dir2/foo2.txt

##########################################################################################
#                                       Completed                                        #
##########################################################################################
Completed at :  2025-09-19 23:09:47
Total Files  :                    3
Total Size   :                   12

Confirmações

Mais Recursos de Aprendizado

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal do Oracle Learning YouTube. Além disso, acesse education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.