Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=*), | intent(in) | :: | uri |
function s3_exists_uri(uri) result(exists) character(len=*), intent(in) :: uri logical :: exists character(len=:), allocatable :: bucket, key type(s3_config) :: temp_config logical :: uri_parsed exists = .false. ! Try to parse as s3:// URI call parse_s3_uri(uri, bucket, key, uri_parsed) if (.not. uri_parsed) then ! Not a s3:// URI, treat as regular key exists = s3_object_exists(uri) return end if ! Use parsed bucket if different from current config if (allocated(bucket) .and. len_trim(bucket) > 0) then temp_config = current_config temp_config%bucket = bucket call s3_init(temp_config) exists = s3_object_exists(key) ! Restore original config call s3_init(current_config) else exists = s3_object_exists(key) end if end function s3_exists_uri