CURRENT PATH:
/
opt
/
gsutil
/
gslib
/
commands
/
__pycache__
/
[ ⬅ KEMBALI ]
|
[ HOME ]
Upload File:
Upload Ke Sini
Dir Baru
File Baru
Editing:
stat.cpython-39.pyc
a +(Wg� � @ s4 d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlZddlZddlm Z ddl mZ dd l mZ dd l m Z ddlmZ ddlmZ dd lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddl!m"Z" dZ#de# d Z$G dd� de�Z%dS )zEImplementation of Unix-like stat command for cloud storage providers.� )�absolute_import)�print_function)�division)�unicode_literalsN)�BucketListingObject)�AccessDeniedException)�EncryptionException)�NotFoundException)�Command)�CommandArgument)�ApiSelector)�CommandException)�InvalidUrlError)�NO_URLS_MATCHED_TARGET)�ContainsWildcard)�StorageUrlFromString)�NO_MAX)�ENCRYPTED_FIELDS)�PrintFullInfoAboutObject)�UNENCRYPTED_FULL_LISTING_FIELDS)�GcloudStorageMapz gsutil stat url... z <B>SYNOPSIS</B> a <B>DESCRIPTION</B> The stat command outputs `object metadata <https://cloud.google.com/storage/docs/metadata>`_ for the specified object URLs. It is similar to running: gsutil ls -L gs://some-bucket/some-object but is more efficient because it avoids listing objects and gets the minimum necessary amount of object metadata. Moreover, because it avoids listing objects (which for some storage providers are eventually consistent) the ``gsutil stat`` command provides a strongly consistent way to check for the existence (and read the metadata) of an object. The ``gsutil stat`` command does, however, make listing object requests if you specify URLs using wildcards. If run with the ``gsutil -q`` option nothing is printed, e.g.: gsutil -q stat gs://some-bucket/some-object This behavior can be useful when writing scripts: even though nothing is printed from the command, it still has an exit status of 0 for an existing object and 1 for a non-existent object. NOTE: Unlike the gsutil ls command, the stat command does not support operations on sub-directories. For example, if you run the command: gsutil -q stat gs://some-bucket/some-subdir/ gsutil looks for information about an object called "some-subdir/" (with a trailing slash) inside the bucket "some-bucket", as opposed to operating on objects nested under gs://some-bucket/some-subdir/. Unless you actually have an object with that name, the operation fails. However, you can use the stat command on objects within subdirectories. For example, this command works as expected: gsutil -q stat gs://some-bucket/some-subdir/file.txt c @ sp e Zd ZdZejdg ededdddej ej gej e�� gd�Z ejdg dd ei d �Zeg d�i d�Zd d� ZdS )�StatCommandz&Implementation of gsutil stat command.�stat� � Fr )�command_name_aliases�usage_synopsis�min_args�max_args�supported_sub_args�file_url_ok�provider_url_ok�urls_start_arg�gs_api_support�gs_default_api�argparse_arguments�command_helpzDisplay object status)� help_name�help_name_aliases� help_type�help_one_line_summary� help_text�subcommand_help_text)�storage�objects�listz--fetch-encrypted-object-hashesz--stat)�gcloud_command�flag_mapc C s� t t }d}| jD �]h}d}t|�}|�� s4td��z�t|�rR| �|�j|d�}nbz"| j j |j|j|j |j|d�}W n0 ty� | j j |j|j|j |jtd�}Y n0 t||d�g}|D ]0}|�� r�|d7 }t�� �tj�r�t|dd� q�W n` t�y& t�� �tj��r"tj�d | d � Y n( t�y: � Y n t�yL Y n0 |st�� �tj��rxtj�t| d � d}q|�r�dS dS )z%Command entry point for stat command.Fr z,The stat command only works with object URLs)�bucket_listing_fields)� generation�provider�fields)�root_objectr )�incl_aclz+You aren't authorized to read %s - skipping� T)r r �argsr �IsObjectr r �WildcardIterator�IterObjects� gsutil_api�GetObjectMetadata�bucket_name�object_namer3 �schemer r �logging� getLogger�isEnabledFor�INFOr r �sys�stderr�writer r r ) �selfZstat_fieldsZfound_nonmatching_arg�url_strZarg_matches�url�blr_iterZ single_obj�blr� rN �"/opt/gsutil/gslib/commands/stat.py� RunCommand� sh �� ��� zStatCommand.RunCommandN)�__name__� __module__�__qualname__�__doc__r �CreateCommandSpec� _SYNOPSISr r �XML�JSONr �MakeZeroOrMoreCloudURLsArgument�command_spec�HelpSpec�_DETAILED_HELP_TEXT� help_specr �gcloud_storage_maprP rN rN rN rO r ] s>